程序员

Mysql学习笔记:存储引擎MyISAM和InnoDB的区别

2018-12-25  本文已影响0人  三岁于辛

在整理文章《Mysql索引的理解:B-Tree(B-树)和B+Tree(B+树)》时,突然对“MyISAM和InnoDB存储引擎区别”有了一个新的理解:两者之间区别之间是有很大关联性的。后面我会慢慢说明。

构成上的区别

Mysql 在设计时把表信息和数据是分开,这在 Mysql8 以前表现为 .frm(表信息元数据)以及 xxx 文件。这是为什么是 xxx 文件,因为这里是本文整理的第一个区别。

索引和数据的存储结构区别

注意:上文中突出了 Mysql8 以前,是因为 Mysql8 已经将 .frm .opt 之类的文件放入到了事务表中进行维护,目的是很明显的。

上文说到了,MyISAM 存储引擎把索引和数据分开存放,但是在实际使用过程它俩是无法分开的,因为通过索引要能找到数据,这里是本文整理的第二个区别。

索引实现区别

可移植性、备份及恢复

MyISAM 支持三种不同的存储格式:静态表(默认,但是注意数据末尾不能有空格,会被去掉)、动态表、压缩表。

事务及外键

表锁差异

全文索引

表的具体行数

转发请注明出处,来自三岁于辛的博客!原文链接

上一篇下一篇

猜你喜欢

热点阅读