- Статус
- Решено
- Заявлено для
- 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-bytes, многие другие плагины и тема оформления могут демонстрировать проблемы с производительностью. Это обновление может изменить индексацию (как это произошло на нашем сервере) и может привести к неожиданному взаимодействию с MySQL (с чем мы столкнулись). Из-за этого вещи, которые раньше оказывали очень слабое влияние, внезапно становятся критическими.
Поэтому наш совет — включить журнал медленных запросов MySQL и проверить, какие запросы действительно влияют на производительность Вашего сервера.