- 状态
- 已解决
- 报告针对
- WPML Multilingual CMS 3.1.9.7
- 解决于
- 3.2
问题概述
页面变得无法使用或加载非常缓慢。
如果您可以监控正在运行的查询,您会发现对以下查询的引用:
SELECT meta_key FROM wp_postmeta GROUP BY meta_key ORDER BY meta_key LIMIT 1000;
临时解决方法
您需要对 WPML 的一个文件进行少量编辑。
您可以使用 FTP 客户端来编辑此文件。
- 打开
wp-content/plugins/sitepress-multilingual-cms/inc/translation-management/translation-management.class.php - 转到第 102 行,您会看到此行:
$this->initial_custom_field_translate_states(); - 通过在行首添加“//”来注释该行。
- 保存文件
完成此操作后,应该不会发生任何变化(除了性能可能会显著提高)。此更改没有副作用。您注释掉的代码以前会执行一些操作,但现在不再需要了。
我们注意到在后端和前端执行的查询达到了峰值。这仅影响拥有数百万个 postmeta 条目的超大型站点(就像我们的站点一样)。
此查询来自旧逻辑,现在已经不再执行任何重要操作。我们将在 WPML 3.2 中将其完全删除。
如果您注意到加载页面时出现巨大的峰值,可能就是这种情况。
但是,请注意,由于 WordPress 4.2 将字符集更改为 UTF8 字节,许多其他插件和主题可能会出现性能问题。此升级可能会更改索引(正如在我们的服务器上发生的那样),并且可能会与 MySQL 发生意外的交互(正如我们所经历的那样)。这会导致以前影响非常小的问题突然变得严重。
因此,我们的建议是启用 MySQL 慢查询日志,并检查哪些查询真正影响了您服务器的性能。