我们的网站每天有数百名访问者,每天有数万次查询。因此,数据库中的某些表很少更新,有些表每分钟更新几次,有些表每秒更新约 10 次。
MyISAM 使用表级锁定进行更新,而 InnoDb 使用行级锁定。
因此,据我了解,对于具有频繁并发更新(每秒几次更新)的表,最好将它们设为 InnoDb,而对于其他表(当然,如果我们不需要事务和外键)则可以使用MyISAM 引擎。
我的想法是对的吗?
问问题
771 次
2 回答
6
MyISAM 的读写速度更快,但不是同时。换句话说,如果您需要进行大量写入,它会更快,但如果您还想让人们同时阅读,那么读取器和写入器将相互阻塞,您可能会遇到并发问题。您应该在这种情况下使用 InnoDB,并且大多数 mysql 专家建议默认使用 InnoDB,因为它被认为比 MyISAM 更可靠,尽管在某些用例下速度较慢。
于 2009-11-12T13:29:32.717 回答
0
是的,我相信是的。我自己是 MySQL 的新手,但是当我安装它时,它解释说 innoDB 针对事务、操作系统进行了优化,而 MyISAM 非常适合报告/DW 系统。
于 2009-11-12T13:30:23.497 回答