快速提问,当您选择、插入或更新 myisam 表时,是否需要锁定表?我从未扩展过大型应用程序。
我什么时候应该开始担心 myisam->innodb?
答案1
不要猜测,要估计。
在合理的硬件上对查询进行计时。假设最常见的修改查询需要 15 毫秒,而最差的查询需要 500 毫秒。
这意味着,如果没有并发,您每秒可以处理 66 个常见查询,或者一个不常见的查询和 33 个常见查询。
现在,单个用户请求会执行多少个这样的查询?你希望在高峰时段拥有多少用户?这些数字让你感觉良好还是糟糕?
使用 MyIsam,您必须考虑整个查询时间,因为修改给定表时没有并发性。
另一方面,使用 InnoDB,您的限制是磁盘每秒可以提供的寻道次数(通常每个主轴每秒 150-180 次),这是一个更好的数字,因为这是命中磁盘的操作(具有足够的缓存,每个修改事务大约进行一次寻道),并且您还可以随时使用更多的主轴或 SSD 来提升它(即使一个也可以达到每秒 10,000 次操作)。