这个问题就像我之前问题的延续:InnoDb 比 MyISAM 更适合频繁的并发更新和插入,我这样说对吗? https://stackoverflow.com/questions/1722155/am-i-right-that-innodb-is-better-for-frequent-concurrent-updates-and-inserts-than/
但这一次我有具体的问题。
我们知道,当我们没有很多并发更新(插入)时,MyISAM 比 InnoDb 更快。当我们有许多并发更新时,MyISAM 表会被锁定,所有其他客户端都应该等待。
1)但是什么时候该从MyISAM改为InnoDb呢?每秒更新1次?每秒10次更新?每秒更新 100 次?
2)举一个具体的例子,将我网站上的表之一更改为 InnoDb 会更好吗?我通常每分钟更新几次(来自不同的会话),但有时每秒可能更新约 2-3 次?
我认为您提到的上一个问题已经基本回答了您的问题。
1)当您创建表时。 InnoDB 提供的优势不仅仅是行级锁定。当您有多个 sql 客户端进行更新时,速度更快,数据丢失/损坏的风险更低,引用完整性等......每秒只有几个事务(TPS),您不太可能看出性能差异,但 InnoDB更可靠并且可扩展性更好。
2)只有 2-3 TPS,您不会看到 InnoDB 和 MyISAM 之间有任何显着差异。即使在半古老的硬件上也是如此。
仅供参考,现代磁盘驱动器每秒应该能够处理至少约 200 个更新事务。
我建议您阅读InnoDB http://en.wikipedia.org/wiki/InnoDB, MVCC http://en.wikipedia.org/wiki/Multiversion_concurrency_control and ACID http://en.wikipedia.org/wiki/ACID.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)