WPML
状态
已解决
报告针对
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 客户端来编辑此文件。


  1. 打开 wp-content/plugins/sitepress-multilingual-cms/inc/translation-management/translation-management.class.php

  2. 转到第 102 行,您会看到此行: $this->initial_custom_field_translate_states();

  3. 通过在行首添加“//”来注释该行。

  4. 保存文件

完成此操作后,应该不会发生任何变化(除了性能可能会显著提高)。此更改没有副作用。您注释掉的代码以前会执行一些操作,但现在不再需要了。

我们注意到在后端和前端执行的查询达到了峰值。这仅影响拥有数百万个 postmeta 条目的超大型站点(就像我们的站点一样)。

此查询来自旧逻辑,现在已经不再执行任何重要操作。我们将在 WPML 3.2 中将其完全删除。

如果您注意到加载页面时出现巨大的峰值,可能就是这种情况。

但是,请注意,由于 WordPress 4.2 将字符集更改为 UTF8 字节,许多其他插件和主题可能会出现性能问题。此升级可能会更改索引(正如在我们的服务器上发生的那样),并且可能会与 MySQL 发生意外的交互(正如我们所经历的那样)。这会导致以前影响非常小的问题突然变得严重。

因此,我们的建议是启用 MySQL 慢查询日志,并检查哪些查询真正影响了您服务器的性能。

所有已知问题 →