На одном сайте, который находиться у меня на обслуживании, заметил не прилично большой размер базы данных, при этом сайт содержит порядка 1300 комментариев и около 300 записей всего, а вес базы данных составлял около 20 гигабайт.
Я залез в phpMyAdmin, чтобы узнать, какие таблицы занимают так много места, но как оказалось – это была всего одна таблица posts. Занимала она 19 гигабайт
Подумал, может глюк и поэтому посчитал количество записей в таблице
Запрос выдал мне 946800 записей, почти миллион записей, когда на сайте записей всего то около 300. Что за черт подумал я, и узнал вот что. WordPress, при загрузке изображений на сайт, считает их отдельной записью, каждому такому изображению присваивается свой id и строка в базе данных.
Тут я вспомнил, что автор сайта, делал «глобальную чистку» у себя, удалял старые посты, удалял какие то изображения и т.д. + делали бэкапы базы, переносили сайт, может что то еще и тогда накосячили, мне не известно. Но делать что-то нужно.
Я делаю запрос, на то, чтобы мне отобразилось количество таких «записей-картинок», которые существуют только строками в базе данных и не имеют «вставки» в посте, иначе говоря, не используют на сайте.
Каждая картинка загруженная на сайт, имеет статус прикреплена к посту или нет. С помощью запроса ниже, мы узнаем сколько же у нас таких мертвых изображений.
Запрос выдал мне около 2000 записей.
Пишем запрос, чтобы удалить это все:
снова проверяем и смотрим размер базы данных, размер не на много и похудел. Ищем дальше..
В phpMyAdmin я решил посмотреть какие вообще записи хранятся в posts и решил глянуть сразу 1000-ую страницу, и увидел полный мрак, у меня есть какие то записи, которые содержат какой то js код, и имеют post_status – 200ok. Я посчитал количество записей, их около 450000 в базе, пишу запрос на удаление этого чуда, жду очень долго, в итоге ничего не получаю. Размер базы данных остается не изменым. Ищу дальше и нахожу записи интересные с post_type – http, считаю, пол миллиона записей, выбираем их и удаляем.
После удаления всего этого мусора, размер базы данных стал 36 мегабайт, нужно еще поработать над оптимизацией базы.
Сколько места занимает ваша база данных и что можно еще оптимизировать, чтобы она была поменьше и пошустрее ?