MyISAM 与 InnoDB 的区别

原创
2015/10/08 21:28
阅读数 325

MyISAM 是MySQL的默认存储引擎。

MyISAM 不支持事务、也不支持外键,其优势是访问的速度快,对事务完整性没有要求或者以 SELECT、INSERT 为主的应用基本上都可以使用这个引擎来创建表。


要明确表示你想要用一个MyISAM表格,请用ENGINE表选项指出来:

CREATE TABLE t (i INT) ENGINE = MYISAM;


MyISAM 的表又支持 3 种不同的存储格式,分别是:

静态(固定长度):

优点:分配快、缓存快

缺点:浪费


动态表:

优点:暂时没看出有啥好处

缺点:频繁地更新删除记录会产生碎片,需要定期执行 OPTIMIZE TABLE 语句或 myisamchk -r命令来改善性能,并且出现故障的时候恢复相对比较困难。


已压缩表:

优点:小

缺点:myisampack工具创建的只读格式


注:当mysql进程在写中间被杀掉或者其他故障时,MyISAM不易被恢复,不建议使用。


========================================================


InnoDB 存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。

但是对比 MyISAM的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。(俗话说的好,有得必有失~)


展开阅读全文
加载中

作者的其它热门文章

打赏
0
9 收藏
分享
打赏
0 评论
9 收藏
0
分享
返回顶部
顶部