Если вы используете WordPress и некоторое время ведете блог, скорее всего, ваши таблицы wp_commentmeta и wp_postmeta огромны и значительно больше, чем реальные таблицы wp_comments и wp_posts. Да, не имеет смысла, что метаданные, связанные с комментариями и публикациями (фактический контент), намного больше, чем сам контент. В этом посте я покажу, как очистить таблицы wp_commentmeta и wp_postmeta, чтобы значительно уменьшить размер вашей базы данных WordPress, что я недавно узнал. [ Читать: 5 ошибок в блогах, которые я сделал, когда начал этот блог ].
Проблема с wp_commentmeta и wp_postmeta
Посмотрите на этот пример. В одном из блогов, который регулярно оптимизировался с помощью WP-Optimize, но никогда не очищался вручную, ниже приведены размеры таблиц комментариев и сообщений:
- wp_comments – 800 строк и 390,8 КиБ
- wp_commentmeta – 5 387 строк и 6,0 МиБ
- wp_posts – 1300 строк и 3,7 МиБ
- wp_postmeta – 11 947 строк и 3,5 Mib
Почему таблицы метаданных комментариев и сообщений больше, чем сами комментарии и сообщения? Это связано с тем, что таблицы wp_commentmeta и wp_postmeta могут быть быстро заполнены ненужными или устаревшими данными, такими как валидации Akismet и метаданные удаленных постов и ревизий. Итак, давайте посмотрим, как быстро очистить wp_commentmeta и wp_postmeta и оптимизировать их для очистки базы данных.
Меры предосторожности – Резервные таблицы
Поймите, что мы напрямую связываемся с базой данных WordPress, и ошибки могут сделать ваш сайт недоступным. Поэтому всегда лучше сделать резервную копию вашей базы данных. Я собираюсь показать, как легко это сделать из phpMyAdmin. [ Читать: Автоматическое резервное копирование базы данных MySQL на хостинге GoDaddy ].
Войдите в свой интерфейс phpMyAdmin и щелкните мета-таблицу wp_comments. Затем, как показано на рисунке ниже, в разделе «Операции-> Копировать таблицу в» введите имя для резервной копии таблицы. В этом случае я выбрал wp_commentmeta_bk. Затем нажмите «Перейти».
WordPress wp_commentmeta Резервное копирование таблиц
Теперь у вас должна быть новая таблица с именем wp_commentmeta_bk. Повторите те же настройки для таблицы wp_postmeta. Вы можете ввести «wp_postmeta_bk» в качестве имени для резервного копирования или выбрать собственное имя. Кроме того, вы можете экспортировать всю базу данных в виде файла и сохранить его на своем компьютере.
Очистить таблицы wp_commentmeta и wp_postmeta
Очистка wp_commentmeta
Сначала давайте очистим таблицу wp_commentmeta. Как показано на рисунке ниже, нажмите на название вашей базы данных слева и перейдите на вкладку SQL.
SQL-запрос для очистки wp_commentmeta
В текстовом поле и как показано выше введите SQL-запрос, приведенный ниже. Убедитесь, что точка с запятой выбрана в качестве разделителя, и нажмите «Перейти».
SELECT * FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments );
DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments );
SELECT * FROM wp_commentmeta WHERE meta_key LIKE '%akismet%';
DELETE FROM wp_commentmeta WHERE meta_key LIKE '%akismet%';
Есть 4 отдельных запроса SQL, которые выполняются последовательно. Сначала мы выбираем данные комментариев для несуществующих комментариев (спам или удаленные комментарии), а затем удаляем их. Затем мы выбираем данные комментариев, которые являются проверками Akismet, а затем удаляем их. При успешном выполнении вы должны увидеть «Ваш SQL-запрос был успешно выполнен». Вы также должны увидеть, сколько строк было затронуто.
Рекомендуемые руководства:
Очистка таблицы wp_postmeta
Чтобы очистить таблицу wp_postmeta, снова щелкните по имени базы данных слева и перейдите на вкладку SQL. Введите следующий SQL-запрос в текстовое поле, убедитесь, что точка с запятой отображается в качестве разделителя, и нажмите «Перейти».
SELECT * FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL;
DELETE pm FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL;
Здесь мы также сначала выбираем данные постметы для постов, которые больше не существуют, а затем удаляем их. После выполнения вы должны увидеть сообщение об успешном выполнении и количество затронутых строк.
Оптимизировать таблицы wp_commentmeta и wp_postmeta
Мы очистили мета-таблицы wp_commentmeta и wp_post, но не совсем. Чистые строки будут находиться в таблице как «накладные расходы». Вам придется оптимизировать таблицу, чтобы избавиться от них. К счастью, phpMyAdmin позволяет очень легко выполнять задачи MySQL. [ Read: 10 простых PHPMYADMIN твики для упрощения администрирования MySQL ].
Чтобы оптимизировать таблицу wp_commentmeta, щелкните по названию таблицы слева и перейдите на вкладку «Операции». В разделе «Обслуживание таблиц» нажмите «Оптимизировать таблицу». Повторите шаги для оптимизации таблицы wp_postmeta. Кроме того, вы можете проверить все таблицы и в раскрывающемся меню «С выбранными» выбрать «Оптимизировать таблицу». Теперь вернитесь к представлению структуры базы данных в phpMyAdmin и сравните количество строк и размер таблиц wp_commentmeta и wp_postmeta.
Таблицы WordPress wp_commentmeta и wp_postmeta после очистки
Обратите внимание, что таблица wp_commentmeta уменьшилась с 6,0 МБ до 55,8 КБ (5 387 строк до 592 строк). Это большое сокращение / экономия. Wp_postmeta также показал уменьшение размера. После тщательного тестирования и проверки того, что вы не сломали свою базу данных и не потеряли какие-либо данные, вы можете удалить созданные вами резервные копии таблиц wp_commentmeta и wp_postmeta.
На форуме WordPress есть несколько постов, в которых спрашивается, как очистить wp_commentmeta и wp_postmeta, и, надеюсь, этот пост поможет другим, у кого возникли проблемы. Итак, вы можете оптимизировать таблицы wp_commentmeta и wp_postmeta и очистить базу данных, чтобы улучшить производительность WordPress.
Источник записи: https://www.smarthomebeginner.com