Знаєте ви чи ні, але для встановлення, вилучення та відображення даних на WordPress використовується база даних MySQL. Вона є найважливішою частиною CMS, і для того, щоб полегшити процес розуміння всіх нюансів, пов'язаних з їх управлінням, WordPress розробив дуже простий та ефективний підхід.
Так, є кілька способів доступу до даних прямо із сайту. І все ж, щоб розібратися, як усе це працює, необхідно ознайомитись із самою базою даних WordPress.
Розуміння її структури може допомогти у вирішенні багатьох проблем із сайтом. Без доступу до панелі керування можна легко змінити пароль, деактивувати плагін, вибрати тему і здійснити багато інших дій прямо з бази даних.
Дивіться також:
Важливо: завжди слід проводити резервне копіювання даних перед тим, як вносити будь-які зміни.
Все починається з файлу wp-config.php
При встановленні WordPress необхідно ввести інформацію бази даних або під час редагування файлу wp-config.php вручну, або під час встановлення. Насправді це виглядає так:
// ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'wordpress_wordpress'); /** MySQL database username */ define('DB_USER', 'usernamehere'); /** MySQL database password */ define('DB_PASSWORD', 'passwordhere'); /** MySQL hostname */ define('DB_HOST', 'localhost'); /** Database Charset to use in creating database tables. */ define('DB_CHARSET', 'utf8'); /** The Database Collate type. Don't change this if in doubt. */ define('DB_COLLATE', '');
Рядки з ім'ям користувача та паролем пояснювати не потрібно. А ось у рядку 'Database Charset is the character set to be used for creating tables', часто не потрібно змінювати utf8 на інший формат кодування. Але якщо у майбутньому сайт буде мультимовним, тоді можна.
За допомогою префікса 'таблиця' можна зробити кілька налаштувань в одній базі даних. Наприклад, префікс 'blog1_' для однієї та 'blog2_' – для іншої.
Підказка для безпеки: фахівці з системи безпеки WordPress рекомендують все ж таки змінювати стандартний префікс на будь-які інші комбінації літер, що допоможе убезпечити базу даних від злому хакерами.
Структура бази даних WordPress
Після встановлення інформації про БД в wp-config та її запуску WordPress автоматично створить таблиці в базі даних з потрібною інформацією.
База даних буде виглядати так:
Примітка: для керування базою даних використовується програма PHPMYADMIN. Ця веб-програма є в панелі керування у більшості веб-хостингів. Деякі з них, в основному, є провайдерами виділених серверів, і у них може не бути панелі керування або phpMyAdmin. У цьому випадку керування базою даних здійснюється з консолі MySQL.
Як бачимо, WordPress створив 11 таблиць. Їхні назви прості та зрозумілі. Але все ж таки ми про них трохи поговоримо.
Таблиця для записів WP_POSTS
Будь-який створений запис на сайті WordPress знаходиться в цій таблиці:
Таблиця wp_posts містить інформацію про всіх даних для створюваних записів: автор, дата, контент, тип посту, інше.
Багато користувачів часто незрозуміло, чому поле post_mime_type не містить жодної інформації. Справа в тому, що воно заповнюється лише за наявності вкладення post_type. Тоді у ньому з'явиться відповідний тип файлу: image/jpeg чи application/pdf.
Таблиця параметрів WP_OPTIONS
Мабуть, найцікавіша таблиця. Вона містить такі поля:
- option_ID
- blog_ID
- імя_опціі
- OPTION_VALUE
- auto_load
Треба сказати, що в ній є дуже важлива інформація про сайт: назва, адмінська пошта, активні плагін та теми. Ці параметри використовуються для втрати доступу до адмінки сайту. Дізнавшись про ці параметри трохи більше можна вирішити багато проблем швидше та безпечніше для сайту.
Не варто забувати проводити регулярне чищення інформації в цій таблиці, адже до неї додаються параметри всіх плагінів і тем. Як це зробити, читайте нижче.
Таксономії та терміни бази даних
WordPress використовує три таблиці для управління таксономіями та користувальницькими таксономіями:
- wp_terms
- wp_term_taxonomy
- wp_term_relationship
Для тих, хто ще до пуття не знайомий з базою даних, це виглядає трохи складно. Але насправді все досить просто і зрозуміло. Перша таблиця wp_terms містить усі терміни. Наприклад, Blogroll, як і Uncategorized – це стандартні терміни. Відповідно і всі теги, категорії, навігаційне меню і такономії користувача є термінами і всі вони розміщуються в цій таблиці.
Таблиця wp_term_taxonomy показує, до якої таксономії який термін відноситься. Наприклад, термін ID 1 (Uncategorized) належить до таксономії категорії, а термін ID 2 (Blogroll) – до категорії посилань.
В таблиці wp_term_relationship всі записи, посилання та сторінки відносяться до терміну з таблиці term_taxonomy. І тут запис може мати кілька термінів у різних таксономіях.
Що таке оптимізація бази даних?
Після встановлення бази даних починається створення оверхедов, які є пам'ять, займану mysql у різних базах даних. Велика кількість таких оверхедів може вплинути на продуктивність бази даних. Але це дуже просто вирішується, тому що MySQL надає запит, який можна використовувати в таблицях для їх оптимізації:
OPTIMIZE TABLE 'wp_posts'
Щоб не грати із запитом вручну, можна оптимізувати таблицю через phpMyAdmin:
Або ж використовувати плагіни WP Optimize або WP DBManager, які також запропонують проводити регулярне чищення записів та видаляти спамні коментарі, оскільки це дуже впливає на функціонування бази даних.
Наприклад, візьмемо 1000 записів із блогу, кожна з яких має 5 версій правок. Тоді база даних опрацьовує 5000 записів, що означає зниження її продуктивності.
Ще один проблемний момент для бази даних - це дані, що залишилися після плагінів, що давно не використовуються. Деякі з них могли створити власні таблиці. Їх можна спокійно видалити. Як і будь-яку іншу інформацію в таблиці wp_options.
Скидання бази даних
На цей випадок можна використати відмінний плагін WordPress Database Reset, який автоматично очистить всю непотрібну інформацію в таблиці WP_options, після чого можна використовувати базу даних, ніби одразу після чистої установки WordPress, та встановлювати нові теми та плагіни.
Резервне копіювання бази даних
Необхідно робити резервне копіювання даних щоразу, коли на сайт вносяться будь-які зміни. Це можна зробити за допомогою phpMyAdmin: завантажити базу даних, клацнути на кнопку Check All, а потім Export.
На наступній сторінці необхідно вибрати формат SQL і натиснути Go, після чого зберегти пропонований файл на свій комп'ютер.
Висновок
Насправді в роботі з базою даних немає нічого складного. Достатньо почати цікавитись цією темою, і так буде простіше зрозуміти, що відбувається з сайтом та як усунути можливі проблеми.
Коментарі до запису: 3
Поверхнева стаття Днями саме читав статтю на аналогічну тему, але набагато повнішу — http://premium.wpmudev.org/blog/optimizing-your-wordpress-database-a-complete-guide/
Дякую! Не завжди матеріал має бути складним, якщо сам формат сайту має на увазі ознайомлення з азами за чашкою кави.
Дякую за статтю. було пізніше, особливо про оптимізацію