База даних є потужним стандартом для зберігання, обслуговування та зміни ваших даних. Це "мозок" вашого сайту, де зберігається все: контент, коментарі користувачів, налаштування сайту, використані теми та плагіни. З кожною зміною, яку ви вносите на сайт (публікація нової статті, додавання нової галереї, встановлення нової теми тощо) — база даних оновлюється новими даними і швидко зростає в обсязі. Водночас зростаюча кількість одночасних відвідувачів, які переглядають ваш сайт і запитують контент, призводить до зростання кількості базових і складних запитів MySQL до бази даних.
Базовий запит MySQL — це запит до однієї таблиці в базі даних, складний запит MySQL — запит даних із кількох таблиць.
У підсумку база даних стає надмірно роздутою та захаращеною даними, які займають місце, збільшують навантаження на сервер і призводять до погіршення роботи сайту та втрати відвідувачів.
Ось чому ми створили цей посібник, щоб надати вам прості інструкції з оптимізації бази даних WordPress, які ви можете почати впроваджувати негайно! Сподіваємось, ви знайдете його корисним і станете на крок ближче до швидкого і легкого завантаження вашого сайту після прочитання цієї статті.
Почнемо з базових кроків оптимізації бази даних: оптимізації таблиць даних.
Цей плагін для оптимізації WordPress є одним із найпростіших і водночас найефективніших інструментів для оптимізації баз даних вашого сайту на WordPress. Єдине, що вам потрібно знати, — як встановлювати плагіни в WordPress.
Увага!
Перед тим як продовжити, переконайтеся, що ви створили повну резервну копію поточної бази даних. Ви можете зробити резервну копію за допомогою WP Database Backup або WP-DB-Backup, у панелі керування сервером або просто попросити підтримку про допомогу.
З огляду на це, давайте подивимося, які кроки потрібно виконати для оптимізації бази даних WordPress і видалення сміття з неї.
Ви завершили!
У результаті WP-Optimize очистить всі застарілі дані (видалені, непідтверджені, спам-коментарі тощо), всі версії записів та зайві пробіли у таблицях даних.
Більше того, цей плагін не займає багато місця, і ви можете деактивувати його після завершення оптимізації.
Ще один плагін для оптимізації таблиць даних від автора популярних плагінів WordPress — Лестера Чана.
Його інтерфейс дуже простий і інтуїтивно зрозумілий у використанні. Ви одразу побачите детальну зведену інформацію про поточний обсяг сміття в таблицях даних. Більше того, WP-Sweep дозволяє виконувати як повну, так і поступову оптимізацію.
Після встановлення ви можете отримати доступ до WP-Sweep через меню "Інструменти" (у лівій панелі адміністратора WordPress) -> Sweep.
Ця опція доступна лише у випадку, якщо ви використовуєте панель керування (наприклад, cPanel) і маєте доступ до інструменту phpMyAdmin.
Перед будь-якими змінами в базі даних обов’язково зробіть її резервну копію.
Тепер, коли копія створена, можна приступати до оптимізації.
Виконайте наступні кроки:
define('DB_NAME')
. Назва бази даних буде вказана в цьому рядку.Після натискання цієї команди phpMyAdmin виконає оптимізацію таблиць.
Що відбувається в результаті? Інструмент phpMyAdmin запускає ту саму команду SQL OPTIMIZE TABLE, яку застосовують плагіни, про які згадувалося вище. Вона реорганізовує фізичне зберігання даних у таблицях і пов’язаних з ними індексах, що зменшує зайняте місце і покращує ефективність доступу до даних.
Фрагментація таблиць виникає, коли база даних регулярно оновлюється, тому її дефрагментація необхідна для прискорення вибірки даних.
Альтернатива використанню плагінів — ручне очищення таблиць бази даних. Ось кілька базових 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)
LEFT JOIN wp_term_taxonomy d ON (b.term_taxonomy_id = d.term_taxonomy_id)
WHERE a.post_type = 'revision'
AND d.taxonomy != 'link_category';
Масове видалення спам-коментарів:
DELETE FROM wp_comments WHERE comment_approved = 'spam';
Масове видалення непідтверджених коментарів:
DELETE from wp_comments WHERE comment_approved = '0';
Масове видалення невикористаних тегів:
DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count = 0 );
DELETE FROM wp_term_taxonomy WHERE term_id not IN (SELECT term_id FROM wp_terms);
DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);
Масове видалення транзієнтів:
DELETE FROM wp_options WHERE option_name LIKE ('%\_transient\_%');
Подальша оптимізація стосується налаштування продуктивності MySQL і починається з визначення та пошуку повільних запитів безпосередньо у MySQL.
Повільні запити MySQL — це запити, що виконуються занадто довго і підлягають оптимізації.
Щоб визначити їх, потрібно активувати журнал повільних запитів MySQL на сервері (за замовчуванням він вимкнений). Це можна зробити, налаштувавши конфігураційний файл my.cnf
, зазвичай розташований у etc/mysql/my.cnf
або etc/my.cnf
.
Відкрийте цей файл у текстовому редакторі та додайте:
slow_query_log = /var/log/mysql/mysql-wp-slow.log
long_query_time = 5
,
де /var/log/mysql/mysql-wp-slow.log
— шлях до файлу, куди будуть збережені повільні запити (цей файл потрібно створити заздалегідь), 5 — час у секундах для визнання запиту повільним.
Після перезапуску MySQL усі повільні запити будуть записуватися до файлу /var/log/mysql/mysql-wp-slow.log
для подальшої оптимізації.
Описані вище методи оптимізації продуктивності сайту є лише базовими рекомендаціями. У кожному конкретному випадку оптимізація залежить від типу вузьких місць, які погіршують продуктивність і негативно впливають на дохід вашого бізнесу.