Перейти до вмісту
Оптимізація бази даних WordPress: Як очистити та пришвидшити вашу базу даних

Оптимізація бази даних WordPress: Як очистити та пришвидшити вашу базу даних

Erik KellerErik KellerОновлено: 15 хв читання481 переглядів

Кожне завантаження сторінки, відправка форми, операція плагіна та сеанс користувача в WordPress передбачає запити до бази даних. З часом база даних накопичує надмірності: старі ревізії постів, застарілі транзієнти, сирі метадані, спам-коментарі та невикористовувані таблиці від деактивованих плагінів. Це надмірне навантаження уповільнює запити, збільшує розміри резервних копій та погіршує загальну продуктивність сайту. У цьому посібнику розглядається, як виявити надмірності в базі даних, безпечно їх очистити та запобігти їх поверненню.

Що зберігає WordPress у базі даних

Розуміння того, що знаходиться у вашій базі даних, допомагає визначити, що можна безпечно видалити. Стандартна установка WordPress використовує 12 основних таблиць, а плагіни додають свої таблиці за потреби.

Таблиця Зберігає Загальний джерело надмірностей
wp_posts Пости, сторінки, ревізії, вкладення, типи постів Ревізії постів, авто-драфти
wp_postmeta Метадані для постів (кастомні поля, дані плагінів) Сирі метадані з видалених постів
wp_options Налаштування сайту, налаштування плагінів, транзієнти Застарілі транзієнти, старі налаштування плагінів
wp_comments Коментарі та трекбеки Спам-коментарі, видалені коментарі
wp_commentmeta Метадані для коментарів Метадані Akismet для видалених коментарів
wp_usermeta Метадані користувачів Токени сесій, дані користувачів плагінів
wp_termmeta Метадані для категорій та тегів Сирі метадані термінів

Загальні джерела надмірностей у базі даних

Ревізії постів

WordPress зберігає ревізію щоразу, коли ви натискаєте "Зберегти чернетку" або "Оновити" на пості чи сторінці. Пост, відредагований 50 разів, має 50 ревізій, збережених у таблиці wp_posts, кожна з власним набором записів postmeta. На сайті з сотнями постів ревізії можуть становити тисячі непотрібних рядків у базі даних.

Транзієнти

Транзієнти - це тимчасові дані, збережені в таблиці wp_options ядром WordPress та плагінами. Вони мають терміни придатності, але WordPress не видаляє автоматично застарілі транзієнти. Вони накопичуються з часом і можуть значно збільшити таблицю опцій, особливо на сайтах з багатьма плагінами.

Сирі дані

Коли ви видаляєте пост, його метадані (записи wp_postmeta) можуть не бути видалені. Аналогічно, видалення коментарів, користувачів або термінів може залишити сирі метадані. Деактивовані та видалені плагіни часто залишають свої таблиці бази даних, споживаючи місце та захаращуючи вашу базу даних.

Спам та видалений контент

Спам-коментарі, видалені пости та видалені коментарі залишаються в базі даних, поки їх не очистять вручну. Сайти з Akismet або іншими фільтрами спаму можуть накопичувати тисячі спам-коментарів, які потребують періодичного очищення.

Авто-драфти

WordPress створює авто-драфти постів, коли ви натискаєте "Додати новий" в редакторі постів, навіть якщо ви ніколи не публікуєте. Вони накопичуються з часом і не виконують жодної функції після завершення сеансу редагування.

Ручне очищення бази даних через SQL

Для тих, хто комфортно почувається з SQL, ви можете очистити безпосередньо, використовуючи phpMyAdmin або клієнт бази даних. Завжди створюйте резервну копію вашої бази даних перед виконанням запитів на очищення.

Видалити ревізії постів

-- Видалити всі ревізії постів
DELETE FROM wp_posts WHERE post_type = 'revision';

-- Видалити сирі метадані (метадані для видалених постів)
DELETE pm FROM wp_postmeta pm
LEFT JOIN wp_posts p ON pm.post_id = p.ID
W

Очистка тимчасових даних

-- Видалити застарілі тимчасові дані
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();

-- Видалити тимчасові дані для застарілих тимчасових даних
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_%'
AND option_name NOT LIKE '%_transient_timeout_%';

Видалення спам-коментарів та коментарів у смітнику

-- Видалити спам-коментарі
DELETE FROM wp_comments WHERE comment_approved = 'spam';

-- Видалити коментарі у смітнику
DELETE FROM wp_comments WHERE comment_approved = 'trash';

-- Видалити метадані сиріт коментарів
DELETE cm FROM wp_commentmeta cm
LEFT JOIN wp_comments c ON cm.comment_id = c.comment_ID
WHERE c.comment_ID IS NULL;

Очищення бази даних на основі плагінів

Якщо ви віддаєте перевагу графічному інтерфейсу, кілька плагінів займаються оптимізацією бази даних з можливістю планування:

WP-Optimize

WP-Optimize — це безкоштовний плагін, який очищає ревізії, чернетки, спам, тимчасові дані та сирітські дані. Він також оптимізує таблиці бази даних і підтримує заплановані очищення. Професійна версія додає підтримку мультисайту та розширене планування.

Оптимізація бази даних WP Rocket

WP Rocket включає вкладку База даних, яка обробляє ревізії, автозбереження, пости в смітнику, спам-коментарі, тимчасові дані та оптимізацію таблиць. Оскільки WP Rocket в першу чергу є плагіном кешування, ви отримуєте очищення бази даних разом з оптимізацією продуктивності в одному інструменті.

Advanced Database Cleaner

Цей плагін заглиблюється глибше, виявляючи таблиці, залишені деактивованими плагінами, та сирітські cron-події. Він категоризує таблиці як основні WordPress, створені плагінами або невідомі, допомагаючи вам визначити, які таблиці можна безпечно видалити.

Плагін Безкоштовна версія Заплановане очищення Виявлення таблиць
WP-Optimize Так Так Основне
WP Rocket Ні (тільки Premium) Так Ні
Advanced Database Cleaner Так Тільки Pro Так (докладно)

Оптимізації wp-config.php

Запобігайте роздуванню бази даних на початку, додавши ці константи до вашого файлу wp-config.php:

Обмежити ревізії постів

// Залишити лише 5 ревізій на пост (рекомендується)
define( 'WP_POST_REVISIONS', 5 );

// Повністю вимкнути ревізії (не рекомендується для більшості сайтів)
define( 'WP_POST_REVISIONS', false );

Встановлення ревізій на 5 забезпечує достатньо історії для відновлення після помилок, запобігаючи безмежному зростанню ревізій. Для контентно насичених сайтів з частими редагуваннями 10 ревізій є розумною альтернативою.

Автоматичне очищення смітника

// Очищати смітник кожні 7 днів (за замовчуванням 30)
define( 'EMPTY_TRASH_DAYS', 7 );

// Вимкнути смітник (елементи видаляються відразу - використовуйте з обережністю)
define( 'EMPTY_TRASH_DAYS', 0 );

Інтервал автозбереження

// Збільшити інтервал автозбереження до 5 хвилин (за замовчуванням 60 секунд)
define( 'AUTOSAVE_INTERVAL', 300 );

Оптимізація таблиць бази даних

Після видалення рядків виконайте операцію OPTIMIZE для відновлення фрагментованого простору:

OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options, wp_comments, wp_commentmeta;

Заплануйте це щомісяця або після великих операцій очищення. Більшість плагінів очищення включають оптимізацію таблиць у свої заплановані завдання.

Планування Автоматичного Очищення

Налаштуйте автоматизовані графіки: щотижневе очищення тимчасових даних та спаму, щомісячне видалення ревізій та оптимізація таблиць, а також щоквартальні аудити сирітських таблиць плагінів. WP-Optimize та WP Rocket обидва підтримують заплановане очищення. Налаштуйте їх під час години пік.

Моніторинг Розміру Бази Даних

Слідкуйте за розміром вашої бази даних, щоб виявити надмірність на ранніх стадіях. Виконайте цей запит, щоб побачити розміри окремих таблиць:

SELECT table_name AS 'Таблиця',
       ROUND(data_length / 1024 / 1024, 2) AS 'Дані (МБ)',
       table_rows AS 'Рядки'
FROM information_schema.tables
WHERE table_schema = 'your_database_name'
ORDER BY (data_length + index_length) DESC
LIMIT 20;

Якщо wp_options перевищує 5 МБ або wp_postmeta зростає понад 100 МБ, настав час для очищення. Ці таблиці часто запитуються, тому їхній розмір безпосередньо впливає на час завантаження сторінок.

Для комплексного підходу до оптимізації продуктивності, який включає оптимізацію бази даних разом із кешуванням, оптимізацією зображень та налаштуванням сервера, прочитайте наш посібник з оптимізації швидкості WordPress. Для постійного контролю здоров'я бази даних у рамках вашої процедури обслуговування, дивіться наш посібник з обслуговування WordPress.

Для отримання додаткової інформації зверніться до офіційної документації: API бази даних WordPress.

Часто Задавані Питання

Чи безпечно видаляти ревізії постів з бази даних?

Так, видалення ревізій постів є безпечним і не впливає на ваш опублікований контент. Ревізії є історичними знімками змін чернеток. Коли ваш контент завершено, ревізії не мають сенсу для більшості сайтів. Однак завжди створюйте резервну копію вашої бази даних перед виконанням будь-якого очищення.

Чи покращить оптимізація бази даних помітно швидкість мого сайту?

Поліпшення залежить від того, наскільки перевантажена ваша база даних. Сайти з 50,000+ сирітськими рядками або таблицею wp_options, що перевищує 10 МБ, побачать помітні поліпшення в часах завантаження сторінок та реакції адміністративної панелі. Менші сайти можуть побачити незначні покращення. Оптимізація бази даних працює разом із кешуванням та іншими заходами продуктивності для кумулятивного поліпшення.

Як часто я повинен оптимізувати свою базу даних WordPress?

Для активних сайтів з регулярними оновленнями контенту щомісячна оптимізація є хорошою базовою практикою. Сайти з високим трафіком, які отримують часті коментарі, транзакції WooCommerce або надходження форм, можуть виграти від щотижневого очищення тимчасових даних та спаму з щомісячною оптимізацією таблиць.

Чи можуть плагіни для очищення бази даних зламати мій сайт?

Авторитетні плагіни, такі як WP-Optimize та WP Rocket, розроблені для безпеки. Вони націлені на відомі категорії надмірності (ревізії, тимчасові дані, спам) і не торкаються важливих даних. Ризик зростає при ручному видаленні специфічних для плагіна таблиць. Якщо ви не впевнені, чи потрібна таблиця, залиште її на місці та спочатку досліджуйте її призначення.

У чому різниця між OPTIMIZE TABLE і видаленням рядків?

Видалення рядків усуває дані з таблиці. OPTIMIZE TABLE реорганізовує фізичне зберігання таблиці після видалення рядків, відновлюючи дисковий простір і дефрагментуючи файл даних. Думайте про це як про видалення файлів (усунення рядків) в порівнянні з дефрагментацією вашого жорсткого диска (оптимізація таблиці).

Чи слід використовувати InnoDB чи MyISAM для таблиць WordPress?

WordPress за замовчуванням використовує InnoDB з версії 5.5, і це рекомендований механізм зберігання. InnoDB підтримує блокування на рівні рядків (краще для одночасних користувачів), транзакції та відновлення після збоїв. MyISAM швидший для операцій з великим обсягом читання, але не має цих надійних функцій. Якщо ви знайдете таблиці MyISAM у вашій базі даних, зазвичай рекомендується конвертувати їх в InnoDB.

Як я можу виявити таблиці, залишені деактивованими плагінами?

Плагін Advanced Database Cleaner може виявити та категоризувати неосновні таблиці. Альтернативно, виконайте SQL запит SHOW TABLES і порівняйте назви таблиць з основними таблицями WordPress та вашими активними плагінами. Таблиці з префіксами, що відповідають деактивованим плагінам, є кандидатами на видалення.

Чи додає WooCommerce значну надмірність базі даних?

Так. WooCommerce зберігає дані замовлень, метадані продуктів, сесії клієнтів та тимчасові дані, які суттєво зростають на активних магазинах. Використовуйте WooCommerce > Статус > Інструменти, щоб регулярно очищати застарілі тимчасові дані та сесії.

Оптимізуйте Продуктивність з Кожного Кутка

WP Rocket обробляє кешування, очищення бази даних та оптимізацію продуктивності в одному плагіні, щоб ваш сайт працював безперебійно.

Досліджуйте WP Rocket →

Часті запитання

Як часто я повинен оптимізувати свою базу даних WordPress?
Для більшості сайтів щомісячна оптимізація є достатньою. Сайти з високим трафіком, які мають активні магазини WooCommerce або форуми, повинні оптимізуватися щотижня. Автоматизовані інструменти, такі як WP-Optimize, можуть виконувати це за розкладом.
Чи безпечно видаляти ревізії постів з бази даних?
Так, видалення старих ревізій постів є безпечним і зазвичай рекомендується. WordPress за замовчуванням зберігає необмежену кількість ревізій, що може додати тисячі рядків. Ви можете обмежити кількість ревізій, додавши константу define REVISIONS до wp-config.php.
Чи покращить оптимізація бази даних швидкість мого сайту?
Оптимізація бази даних зазвичай зменшує час виконання запитів, що покращує час відповіді сервера (TTFB). Найбільший вплив помітний на динамічних сторінках з складними запитами, таких як сторінки продуктів WooCommerce або результати пошуку.
Чи слід оптимізувати базу даних перед чи після резервного копіювання?
Завжди створюйте повну резервну копію бази даних перед виконанням будь-якої оптимізації. Це забезпечить можливість відновити ваші дані, якщо щось піде не так під час процесу очищення.
Що таке сирі метадані та чи можу я їх безпечно видалити?
Сирі метадані — це рядки в мета-таблицях, які посилаються на пости, користувачів або коментарі, які більше не існують. Їх безпечно видаляти, і вони часто накопичуються від видалених плагінів або контенту. Інструменти, такі як WP-Optimize, можуть виявити та очистити ці записи.

Поділитися публікацією

Про Автора

Erik Keller
Erik Keller

Експерт з WordPress

Старший спеціаліст з WordPress з великим досвідом розробки тем, плагінів та WooCommerce. Захоплений допомогою бізнесу досягти успіху за допомогою рішень WordPress.

WordPressWooCommerceРозробка темРозробка плагінівОптимізація продуктивності

Будьте в Курсі

Отримуйте найновіші поради та посібники WordPress на свою пошту.