我正在尝试解决大型 wordpress 安装(大约 600K 帖子)上的一些严重问题,并注意到 wp_posts 表是 INNODB 但 wp_posts_meta 是 MyISAM
对我来说看起来有点奇怪。
任何人都知道此表引擎配置可能存在的问题,尤其是具有不同引擎的表之间的连接?
谢谢
我只知道混合 innodb 和 myisam 时事务可能会中断。在您的情况下,这没问题,因为 wordpress 没有使用事务。但是,将帖子表设置为 innodb 是一个奇怪的选择。混合类型可能是有益的,因为 myisam 在不经常更改的表上往往更快。当 myisam 表上的一行被更新时,整个表被锁定,而 innodb 只是锁定该行。
post表就是这样一个表(偶尔写,读很多次)。但是您的设置似乎相反。这不是一个大问题,但是通过保留该表 innodb 并没有获得任何好处。
关于您的问题:由于您没有具体说明您的问题是什么,因此我不能说它们听起来是否相关。但我猜这不是罪魁祸首。
免责声明:如果配置正确,很多人声称 innodb 和 myisam 一样快。可能是这样,但是周围没有很多配置良好的设置,更不用说知道如何针对给定任务优化 mysql 的人了。还有很多人在共享主机上,或者无法自己更改设置。对于他们来说,将表切换到 innodb(或其他方式)可以工作。