数据库的存储引擎

参考:深入浅出MySql

MyIsam:MySQL默认的存储引擎,不支持事务,不支持外键,优势是访问速度快。

MyIsam磁盘上存储三个文件:.frm存储表定义;.MYD存储数据;.MYI存储索引。MyIsam表支持三种不同存储方式,静态表,动态表,压缩表。

静态表:字段都是非变长的,这样每个记录都是固定长度,这种方式的优点是存储迅速,容易缓存,出故障容易恢复。

动态表:字段是变长的,这样占用空间小,但是频繁更新和删除记录会导致碎片很多,需要定期的optimize table

压缩表:记录被压缩存储,访问开支小。

InnoDB:具有提交、回滚和崩溃回复能力,支持事务。InnoDB的自动增长列必须是索引,如果是组合索引,那必须是索引的第一列,对于myIsam表,自动增长列可以是组合索引的其他列。

MySQL只有InnoDB支持外键,在创建外键时,要求父表必须有对应的索引,子表也会自动创建对应的索引。

外键关键字:RESTRICT,CASCADE、SET NULL。

RESTRICT:子表有相应记录,父表不允许更新;

CASCADE:子表有相应记录,父表更新或者删除时,子表同时更新或者删除

SET NULL:父表相应记录删除时,子表对应记录设为NULL。

MEMORY:使用存于内存中的内容来创建表,每个MEMORY表只实际对应一个磁盘文件.frm,Memory表数据访问很快,默认使用HASH索引,但服务器关闭则数据丢失。

在MEMORY创建时,可指定Hash索引或者B-Tree索引。

MEMORY存储引擎主要用于那些内容变化不频繁的代码表,或者作为统计操作的中间结果表,便于高效的对中间结果进行分析并得到最终的分析结果。

猜你喜欢

转载自blog.csdn.net/weixin_42634329/article/details/81637458