Несколько полезных SQL запросов для wordpress

Вчера в срочном порядке во всех постах pervushin.com понадобилось заменить одну фразу на другую. На данный момент в блоге 310 записей. Можно конечно отредактировать все 310 постов что называется «вручную», но это не очень хорошая идея или очень не хорошая. Нужна автоматизация.

После не продолжительных поисков был найден довольно не сложный способ автоматизировать процесс замены. Буквально одна строчка SQL запроса в базе данных моего wordpress и через пару секунд процесс замены был завершен. Завершен удачно.

Несколько полезных SQL запросов для wordpress

В этом небольшом посте я хотел бы поделиться с Вами этим и несколькими другими SQL запросами, которые могут значительно облегчить жизнь блоггера использующего wordpress.

Как выполнять SQL запросы

Все начинается в панели phpMyAdmin. Именно в phpMyAdmin располагаются базы данных. Заходим в панель и в окне справа кликаем на вкладку «Экспорт». Если у вас возник вопрос — «почему не вкладку SQL?», тогда напомню, что перед выполнением любой операции необходимо делать копию того, над чем работаем. Тогда в случае неудачи мы сможем восстановить работоспособность измененного из этой копии.

Страница экспорта базы данных в SQL файл

На этой странице я обычно ничего не меняю. Но если вы точно знаете, какую таблицу будете менять, тогда можно экспортировать лишь ее одну.

Также здесь можно указать метод сжатия готового файла. Например .zip. Тогда phpMyAdmin сделает выборку необходимых таблиц или базы целиком, а затем упакует ее в архив, который тут же скачается на компьютер. Удобно, если база большая по размеру.

После получения готового дампа базы, можно переходить непосредственно к операциям с SQL запросами. Вот теперь проходим на вкладку «SQL».

На этой вкладке лишь одно окно, так что не промахнетесь :). В это окно достаточно вставить необходимый SQL запрос и нажать «OK».

SQL запрос для массовой замены фразы в постах wordpress

Массовая замена фразы в постах

Тот самый SQL запрос, который помог мне вчера сэкономить массу времени. Цель проста: поиск и замена одного текста на другой в постах блога.

UPDATE wp_posts SET post_content = REPLACE (post_content,'что заменить','чем заменить');

Копируем вышеуказанный SQL запрос в окно, меняем фразы «что заменить» и «чем заменить» на свои, и нажимаем «ОК».

Удаление копий постов (ревизий)

В последнее время я плотненько занялся оптимизацией блога в плане производительности. Сделано несколько шагов в этом направлении, есть положительные результаты и обо всем этом я обязательно отпишусь. Один из таких шагов — оптимизация базы данных.

Пока мы пишем пост wordpress регулярно его сохраняет. Это конечно хорошо, всякое в жизни бывает и в случае чего можно восстановить последнюю сохраненную копию.

Но дело в том, что движок не удаляет эти самые сохраненные копии (их еще ревизиями обзывают). В итоге база растет как на дрожжах. А чем больше база, тем медленней база отдает информацию, так как больше времени уходит на поиск нужной информации в базе. В общем необходимо лишнее удалить. SQL запрос нам в помощь:

DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision'

Делайте эту команду изредка, лишним не будет. У меня база уменьшилась на 355 уже не нужных записей ;).

Удаляем уведомления (pingbacks)

WordPress, возможно как и другие движки, имеет в своем арсенале такой инструмент, как pingbacks. Это уведомления о том, что кто-то сослался на ваш сайт. Эти уведомления похожи на комментарии и располагаются они в ветке комментариев непосредственно в статье на которую была поставлена ссылка.

Это абсолютно лишние записи, которые нам лично никакой пользы не несут. Давайте расправимся с ними вот этим SQL запросом:

DELETE FROM wp_comments WHERE comment_type = 'pingback';

И вообще, эти пинги лучше отключить. Я отключил:

UPDATE wp_posts p SET p.ping_status = 'closed'

Выполнение этих команд позволит хоть чуть-чуть, но увеличить производительность базы данных. А в некоторых случаях, когда база имеет большущие размеры, производительность увеличится довольно прилично.

Удачи Вам друзья и надежной, производительной базы данных!

Сладкое на сегодня: рекламный ролик (как обычно с юморцой) пива. Только не подумайте, я не пропагандирую употребление, но смекалка это хорошо. Наслаждайтесь :).


Комментарии

15 на запись "Несколько полезных SQL запросов для wordpress"
  1. Clock says:

    Насчет ревизий, их лучше вообще отключить или сократить до 2-3. Делается это через php

    • Snapshot says:

      Не-не, в том то и дело, что не хочу их отключать совсем, бывает выручают они меня. А через php можно любую вышеуказанную функцию реализовать и не придется в phpmyadmin нырять…

  2. У меня пока не так много записей в своем блоге. Но умение применять функцию SQL запросов может пригодиться в будущем. Большое спасибо за информацию!

    • Snapshot says:

      Пригодится, обязательно. Я вот рад, что пост такой написал. Сегодня опять понадобилась функция замены и я уже знал где ее посмотреть 🙂

  3. Леша says:

    Надо срочно начинать изучать My SQL, столько прикольных кодов можно заделать для блога. Вот даже замена фразы на другую, а уже насколько проще сделать это с помощью запросов, чем вручную по всем постам искать и менять.

  4. Хорошие запросы, сам использую раз в месяц некоторые. А ролик — вообще чума))

  5. Hudoznik says:

    Для меня что то не совсем понятно …

  6. Да, должна быть информация о удачно проделанной операции, а именно скорость проделанного запроса и количество затронутых строк.

  7. ух а это для меня новость) о базах совсем ничего не знаю ..:)

  8. Nadya Proshina says:

    Я бы тоже хотела почистить свою базу, но после ввода запроса выходит сообщение «#1046 — No database selected». Что здесь можно сделать?

  9. Рад, что все удачно прошло)

  10. Что в переводе означает «Таблицы ‘proshinanv_pro.wp_posts’ не существует». Проверьте правильность написания названия таблицы.

  11. Добрый день! Вопрос в том что у меня новостной сайт на wordpresse, с сайтом случилось чп а бекапа свежего не было, мне пришлось восстановить старое, после восстановления все картинки исчезли остались пустые рамки картинок, блин статьи очень портит. Подскажите пожалуйста как массово удалить со всех записей пустые рамки изображение sql запрос? Дело в том что сайт имеет 7300 записей из них где то 3600 записей с пустыми рамками, а ручками очень долго придется возится. Помогите пожалуйста. Заранее Спасибо!

Спасибо, что оставили свой комментарий

banner