我有一个包含大约30个表的数据库,其中5个表是写密集型的。
我在考虑
转换5个写入密集型表以使用InnoDB引擎,并将其余部分保留在MyISAM引擎上
转换所有表以使用InnoDB引擎。
我想知道哪种方法更好?
更具体一点
我想在MyISAM引擎上保留一些表的原因是其中一些表有大约1,000,000行。我不确定转换为InnoDB后这些表上的“SELECT COUNT(*)”查询会有多慢。
我还没有做过测试。在开始转换之前,我更喜欢从你们这里得到一些建议。
答案 0 :(得分:12)
现在,我总是默认使用InnoDB,特别是在你提到的写密集表中,MyISAM遭受全表锁定。这是一个比较点。
使用MyISAM的原因:
使用InnoDB的原因:
上述内容取自this site,似乎不再起作用。
答案 1 :(得分:2)
每个人的利弊。
(1) 专业人士:磁盘空间使用量减少,myisam读取繁重访问模式的速度更快
缺点:必须在innodb缓冲区和myisam密钥缓冲区之间共享内存。 innodb表比他们的myisam表大约4倍。程序代码必须适应死锁处理。
请记住,如果您要更改索引列或主键,innodb也会锁定。