- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Уважаемые форумчане, помогите пжст советом по оптимизации базы данных блога на WordPress.
По результатам сканирования базы плагином Duplicator, выдал следующие предупреждения (Warn!):
1) Database total size: Tables: 49 | Records: 530,780 | Size: 145.85MB (в блоге всего 168 простых текстовых записей с внешними ссылками, никаких вложенных медиафайлов)
2) Table details, которая выглядит так:
По объему БД нагружают эти данные:
No. Tables Records Data Size Index Size Type Overhead
19 yg5g9f4_postmeta 439 257 26,0 MB 13,8 MB MyISAM 0 bytes
20 yg5g9f4_posts 69 767 99,0 MB 4,6 MB MyISAM 0 bytes
Я запускал repair.php, а также всевозможные плагины по оптимизации (Better Delete Revision, WP-Optimize, WP Clean Up, WP Database Cleaner, Optimize Database after Deleting Revisions), которые прошли успешно. Но проблема осталась: размер базы практически не изменился, плагин Duplicator по-прежнему выдает свои предупреждения (и не делает копию сайта). Что еще можно предпринять?
Надо было отсортировать отчет по размеру или числу записей в таблицах.
Чтобы не приходилось глазками искать, например
Почти 70 тыщ постов на 100 мегов. Ищите сирот. В обычном sql элементарный запрос, надо только знать о связях.
kostyanet, не подскажете где об этом можно почитать? Эти "сироты" имеют какое-нибудь формальное обозначение, по которому можно нагуглить информацию?
---------- Добавлено 15.06.2015 в 00:29 ----------
Еще вопрос: плагин Plugins Garbage Collector показал несколько таблиц, которые по его мнению не используются. В т.ч:
yg5g9f4_wfscanners------7271-----182.11
yg5g9f4_wffilemods------2732-----382.26
yg5g9f4_wfhits------------2200-----526.58
yg5g9f4_wfleechers------1352-------38.16
yg5g9f4_wfstatus---------1207------106.61
Т.е. объем ничтожный, но записей около 15 тысяч. Стоит ли удалить? Беда в том, что из-за огромной базы я даже резервную копию толком не могу сделать, так что напрасно рисковать не хотелось бы.
Узнал в чем дело. В свое время ставил форум - он и наполнился спамом (на 70 тысяч тем и записей). Таблицу posts почистил. Подскажите пжст кто знает SQL - как теперь почистить метаданные (postmeta) и где еще может быть мусор?
Еще раз, надо знать про отношения. Про связи между таблицами и про ключи (поля) используемые для связей.
Ну или надо знать как устроен ВП.
Мне порекомендовали такие запросы на очистку таблиц postmeta и term_relationships:
LEFT JOIN yg5g9f4_posts p ON pm.post_id = p.ID
WHERE p.ID IS NULL;
DELETE FROM yg5g9f4_term_relationships tr
LEFT JOIN yg5g9f4_posts p ON tr.object_id = p.ID
WHERE p.ID is NULL;
Подскажите пжст кто знает SQL - насколько правильно составлены запросы? Я не рискую повредить базу, воспользовавшись ими?
---------- Добавлено 15.06.2015 в 13:22 ----------
Я синтаксис этого запроса не понимаю. Нельзя ли просто удалить все записи в таблице postmeta, которые ссылаются на несуществующие записи в posts? В моем случае:
post_id - поле в yg5g9f4_postmeta, которое, как я понимаю, ссылается на записи в yg5g9f4_posts
ID - поле в yg5g9f4_posts, которое, как я понимаю, является ключевым номером записи в этой таблице.
---------- Добавлено 15.06.2015 в 14:20 ----------
В общем, при помощи своих простеньких запросов (удалить все записи, ID которых не найдены в таблице posts) удалил все лишние записи из таблиц postmeta и term_relationships. До это вычистил весь спам в posts - там теперь 160 записей вместо 70 тысяч. Но объем всех таблиц совершенно не изменился: 103 Мб на 160 записей в posts и 39 Мб на 497 записей в postmeta. Что делать?
---------- Добавлено 15.06.2015 в 14:41 ----------
Сделал оптимизацию через phpMyAdmin, есть там такая возможность. Теперь все отлично, вся база целиком - 2.5 Мб. Проблема решена.