日期:2014-05-16  浏览次数:20585 次

MySql MyISAM和InnoDB的区别
网站的Mysql存储引擎一直为InnoDB,而常见的还有MyISAM,Memory等,看了《高性能Mysql》这本书后,对比了下他们之间的区别,简单总结一下:
MyISAM默认为Mysql的存储引擎,在性能和可用特征之间,MyISAM提供了良好的平衡,但MyISAM不支持事务和行级锁,他对整张表进行加锁,适用于select,insert,高负载的场合,在读写并重的场合并不适用,系统开销比较小。个人认为一次写入频繁读取的情况比较适用。
InnoDB,支持MVCC的行级锁,InnoDB表的行锁也不是绝对的,假如在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,把数据和内存缓存在缓冲区池里,会自动构建哈希索引以加快行读取;支持事务,不支持全文检索,适用于高并发读写,当然系统开销也比较大。个人认为对事务要求高,有并发性要求高的,有大量更新和删除的情况比较适用。