MYSQL数据库引擎 MYISAM和 INNODB区别

1,存储结构

MyISAM:每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型.frm文件存储表定义。数据文件的扩展名为.MYD(MYData)。索引文件的扩展名是.MYI(MYIndex)

InnoDB :所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),InnoDB表的大小只受限于操作系统文件的大小,一般为2GB。


2,存储空间

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

InnoDB :需要更多的内存和存储,它会在主内存中建立其专用的缓冲池用于高速缓冲数据和索引


3,事务支持

MyISAM数据:强调的是性能,每次查询具有原子性,其执行数度比InnoDB的类型更快,但是不提供事务支持

InnoDB :提供事务支持事务,外部键等高级数据库功能。具有事务(commit),回滚(rollback)和崩溃修复能力(崩溃恢复能力)的事务安全(transaction-safe(ACID compliant))型表。


4,CURD操作

MyISAM:如果执行大量的SELECT,MyISAM的是更好的选择(因为没有支持行级锁),在增删的时候需要锁定整个表格,效率会低一些相关的是innodb的支持行级锁,删除插入的。时候只需要锁定改行就行,效率较高
InnoDB:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表.DELETE从性能上InnoDB更优,但是从表时,DELETE FROM表时,InnoDB不会重新建立表,而是一行一行的删除,在innodb上如果要清空保存有大量数据的表,最好使用truncate table这个命令。


5,外键

MyISAM数据:不支持
InnoDB:支持


原文:https //www.cnblogs.com/yangtzewang/p/5902020.html


猜你喜欢

转载自blog.csdn.net/u012755196/article/details/80926130