MySQL存储引擎之InnoDB和MyISAM的区别

  • Post author:
  • Post category:mysql

MyISAM

        MyISAM 存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件。首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm 文件,另外还有.MYD和.MYI 文件,分别存放了表的数据(.MYD)和索引数据(.MYI)。每个表都有且仅有这样三个文件做为 MyISAM 存储类型的表的存储,也就是说不管这个表有多少个索引,都是存放在同一个.MYI 文件中。

InnoDB

        在物理存储方面,Innodb 存储引擎也和 MyISAM 不太一样,虽然也有.frm 文件来存放表结构定义相关的元数据,但是表数据和索引数据是存放在一起的。

总结

InnoDB        MyISAM
存储文件

.frm文件: 存储表定义文件

.idb文件: 数据文件(包括索引和文件)

.frm文件:  存储表定义文件

.myd文件: 存储数据

.myi文件:  存储索引

表锁和行锁  表锁
事务 支持事务(ACID) 不支持事务
CRUD 读,写    读多
count 扫表        有专门存储的地方
索引结构 B+Tree B+Tree

版权声明:本文为m0_71975767原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。