什么是数据库的存储引擎呢?简单的来说数据库的存储引擎就是负责数据的存储和读取。然而不同的存储引擎性能是不一样的。
MySQL中的数据用各种不同的技术存储在文件(或者内存)中,每一种技术都使用不同的存储机制、索引技巧,通过选择不同的技术,能够获得额外的速度或者功能,从而改善应用的整体功能。
InnoDB 存储引擎:它是 MySQL 5.5 版本之后默认的存储引擎,最大的特点是支持事务、行级锁定、外键约束等。InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比MyISAM的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。
MyISAM 存储引擎:在 MySQL 5.5 版本之前是默认的存储引擎,但它不支持事务,也不支持外键,最大的特点是访问速度快,占用资源少,对事务完整性没有要求或者以SELECT、INSERT为主的应用基本都可以使用这个引擎来创建表。
Memory存储引擎:使用系统内存作为存储介质,以便得到更快的响应速度,每个Memory表实际对应一个磁盘文件,格式是.frm。Memory类型的表访问非常快,因为它到数据是放在内存中的,并且默认使用HASH索引,但是一旦服务器关闭,表中的数据就会丢失,但表还会继续存在。因此我们只有当数据是临时的情况下才使用 Memory 存储引擎。
Archive 存储引擎:
它有很好的压缩机制,用于文件归档,在请求写入时会进行压缩,所以也经常用来做仓库。
NDB 存储引擎:
也叫做 NDB Cluster 存储引擎,主要用于 MySQL Cluster 分布式集群环境,类似于Oracle 的 RAC 集群。
在MySQL客户端中,使用以下命令可以查看MySQL支持的引擎。
需要注意的是,数据库的设计在于表的设计,而在 MySQL 中每个表的设计都可以采用不同的存储引擎,可以根据实际的数据处理需要来选择存储引擎。
SQL是Structured Query Language(结构化查询语言)的缩写;是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言;在使用时,只需要发出“做什么”的命令即可。
DDL:数据定义语言,用来定义数据库对象:创建库,表,列等;
DCL:数据控制语言,用来定义访问权限和安全级别。
SQL常用的八大数据类型为double、char、varchar、text、blob、date、time、datetime,具体如下:
MySQL中定义数据字段的类型对你数据库的优化是非常重要的;
MySQL支持多种类型,大致可以分为文本、数字和日期/时间类型。
更详细的MySQL数据类型见网址说明:
https://www.w3school.com.cn/sql/sql_datatypes.asp。