文章目录
存储引擎(Storage engine)
存储引擎这个名字只有在mysql中存在。
(Oracle中有对应的机制,但是不叫做存储引擎。Oracle中没有特殊的名字,就是“表的存储方式”)
mysql支持很多存储引擎,每一个存储引擎都对应了一种不同的存储方式。每一个存储引擎都有自己的优缺点,需要在合适的时机选择合适的存储引擎。
1、完整的建表语句示例:
CREATE TABLE `t_x` (
`id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
注:在MySQL当中,凡是标识符是可以使用飘号括起来的。最好别用,不通用。
建表的时候可以指定存储引擎,也可以指定字符集。
mysql默认使用的存储引擎是InnoDB方式。
默认采用的字符集是UTF8
2、查看当前mysql支持的存储引擎?
查看当前mysql版本:
select version();
查看存储引擎:
show engines \G
mysql 5.5.36版本支持的存储引擎有9个
3、常见的存储引擎
1、MyISAM 存储引擎
-
MyISAM这种存储引擎不支持事务。
-
MyISAM是mysql最常用的存储引擎,但是这种引擎不是默认的。
-
MyISAM采用三个文件组织一张表:
xxx.frm (存储表结构定义的文件,)
xxx.MYD (存储表中数据的文件)
xxx.MYI (存储表中索引的文件) -
优点:
可被压缩,节省存储空间。并且可以转换为只读表,提高检索效率。 -
缺点:
不支持事务。
2、InnoDB 存储引擎
-
表的结构存储在xxx.frm文件中
-
数据存储在tablespace这样的表空间中(逻辑概念),无法被压缩,无法转换成只读。
-
这种InnoDB存储引擎在MySQL数据库崩溃之后提供自动恢复机制。
-
InnoDB支持级联删除和级联更新。(级联删除和级联更新:支持先删除或更新父表中的数据,随后子表也会删除或更新)