База данных Вордпресс

Как работает база данных WordPress
База данных — это библиотека веб-сайта, в которой в соответствующих разделах находится вся информация веб-сайта.

В базе данных содержатся имена и пароли посетителей, содержание записей и страниц, товары и цены магазина, комментарии пользователей и весь остальной контент веб-сайта.

  • MySQL — ПО библиотеки
  • phpMyAdmin — веб-интерфейс для управления MySQL
  • SQL — язык запросов для управления софтом

В данной статье вы узнаете, как работает база данных, где находится база данных, какие движки для хранения информации используются и как оптимизировать и восстановить базу данных.

В данной статье мы рассмотрим:

Что такое MySQLГде находится база данныхАрхитектура базы данных ВордпрессДвижки MySQLОптимизация базы данных

  1. Устанавливайте только те плагины, которые будете использовать
  2. Спам
  3. Ревизии записей
  4. Удаление неиспользуемых таблиц
  5. Оптимизация БД вручную
  6. Оптимизация БД с помощью плагинов

Восстановление БДБаза данных свежей установки WordPress 4.9.8Как работает кеширование базы данныхЗаключение

Что такое MySQL

WordPress использует SQL-запросы для работы с базой данных. Например, у посетителя есть роль Подписчика, SQL используется для его авторизации на веб-сайте. С помощью sql запросов посетитель находится в базе данных, проверяются его права доступа и дается разрешение на вход. После этого проверяется правильность выведенных данных во фронт-энде.

PHP и SQL создают динамический содержимое, который зависит от запросов пользователя. К примеру, Имя посетителя, Роль посетителя, Категория, Метка, Дата, и так далее. Это может показывать или скрывать контент в зависимости от данных запросов.

Кроме ядра WordPress базу данных используют темы и плагины. Они хранят ваши параметра в базе данных, во время работы они создают SQL запросы к базе данных и получают ответы.

Это суть работы базы данных.

Где находится база данных

База данных находится на веб-хостинге в панели администратора, иконка или ссылка должна называться «База данных», «Database», «MySQL» или что-нибудь подобное. Для администрирования базы данных используется приложение phpMyAdmin, которое установлено на веб-хостинге.

Архитектура базы данных WordPress

База данных стандартной установки WordPress состоит из 11 неудаляемых таблиц, которые используются WordPress для работы.

  • wp_commentmeta — метаданные всех комментариев на Записях и Страницах и в кастомных видах записей.
  • wp_comments — все комментарии на веб-сайте, включая Опубликованные, Ожидающие проверки, Одобренные и Спам.
  • wp_links — информация о ссылках в менеджере ссылок; эта функцию теперь редко используется, после версии 3.5 скрыта по умолчанию.
  • wp_options – самая большая таблица WordPress, в которой хранится несколько параметров, от адреса веб-сайта до параметров Чтения и Обсуждения. В данной таблице хранят записи темы и плагины.
  • wp_postsmeta – в данной таблице хранятся метаданные записей и страниц.
  • wp_posts – хранит контент записей и страниц и данные меню и навигации.
  • wp_terms – эта таблица хранит категории записей, ссылок и тегов.
  • wp_term_relationships – сообщения связаны с категориями и тегами в таблице wp_terms, данные ассоциации хранятся в таблице wp_term_relationships.
  • wp_term_taxonomy – хранит таксономию категорий, ссылок и тегов для записей в таблице wp_terms.
  • wp_usermeta – хранит метаданные всех посетителей из таблицы wp_users.
  • wp_users – в данной таблице хранятся данные о всех посетителях веб-сайта.

В базе данных мультисайт установки WordPress находится ещё пару таблиц:

  • wp_blogs – каждый веб-сайт Мультисайт сети хранится здесь.
  • wp_blog_versions – хранит текущую версию базы данных каждого веб-сайта в сети, и используется в основном для обновления Мультисайт сети. Обновляется когда обновляется каждый веб-сайт.
  • wp_registration_log – хранит информацию о посетителях на каждом веб-сайте.
  • wp_site – включает адрес веб-сайта.
  • wp_sitemeta – эта таблица хранит различные параметра веб-сайтов.
  • wp_users – включает данные о всех посетителях. Такая же таблица есть в одиночной установке WordPress, но в данной таблице есть 2 дополнительные строки: Спам и Удаленные.
  • wp_usermeta – включает метаданные каждого посетителя каждого веб-сайта.

Кроме данных таблиц добавляются таблицы каждого подсайта в мультисайт установке, например, wp_2_commentmeta, wp_2_comments, wp_2_links и так далее. Данные основного веб-сайта хранятся в ваших основных ненумерованных таблицах.

Плагины хранят ваши данные в базе данных

Когда вы устанавливаете новый плагин, он использует базу данных веб-сайта для хранения информации. К примеру, плагин рекламы хранит место для показа рекламы и саму рекламу в базе данных. При запросе нужной страницы плагин запрашивает эту информацию из базы данных и помещает ее в нужное место.

Плагины могут использовать стандартные таблицы WordPress, к примеру, wp_posts или wp_postsmeta, или создавать ваши собственные таблицы. Некоторые плагины создают ваши собственные таблицы, к примеру, WooCommerce создает 8 собственных таблиц, которые хранят ID товаров, заказы, налоги и так далее.

Считается более предпочтительным, чтобы плагины использовали стандартные таблицы WordPress для хранения информации, обычно для этого используется таблица wp_options. К сожалению, это не возможно, особенно для таких больших плагинов как WooCommerce.

После того, как вы удалили плагин, можно удалить его таблицы из базы данных, так как через некоторое время база данных будет наполнена большим числом неиспользуемой информации. Некоторые плагины имеют встроенную опцию удаления ваших таблиц из базы данных, некоторые — нет.

Если вы будете удалять таблицы или записи из базы данных, то сделайте бэкап, так как удаленные таблицы нельзя восстановить.

  • Бэкап WordPress

Движки MySQL

MySQL использует различные движки для хранения и извлечения информации из таблиц базы данных. MySQL поддерживает пару движков, самые популярные из них — MyISAM и InnoDB.

В большинстве случаев в конфигурационном файле MySQL по умолчанию установлен движок MyISAM.

Вы можете заменить движок MyISAM на InnoDB. MyISAM быстро считывает информацию. InnoDB тоже быстро считывает информацию, но записывает информацию быстрее при помощи механизма блокировки строк. Поскольку WordPress и считывает, и записывает информацию в базу данных, InnoDB будет лучшим выбором.

Движок InnoDB в базе данных

Обычно движок MyISAM установлен по умолчанию на недорогих веб-хостингах. Чтобы сменить движок хранения базы данных, сделайте бэкап и используйте этот запрос:

SET default_storage_engine=InnoDB;

Чтобы настроить движок только одной таблицы, используйте этот запрос:

ALTER TABLE table_name ENGINE=InnoDB;

После того, как вы сменили движок, некоторые плагины могут записывать ваши данные в базу данных, используя по умолчанию технологию MyISAM. Вы можете без труда оставить как есть, база данных может работать с различными движками одновременно, или вручную измените движки данных таблиц.

Оптимизация базы данных

Одна из причин медленного веб-сайта — неочищенная и неоптимизированная база данных.

Первая оптимизация — измените движок на InnoDB. После этого очистите базу данных от мусора и оптимизируйте ее.

  • Как очистить и оптимизировать базу данных

Перед очисткой / оптимизацией сделайте бэкап базы данных.

Устанавливайте только те плагины, которые будете использовать

Хороший метод оптимизировать базу данных — не устанавливать плагины для тестирования на веб-сайте. Тестируйте плагины на отдельном веб-сайте.

Каждый плагин, который вы устанавливаете на веб-сайт, создает ваши записи в базе данных, то есть увеличивает размер базы данных.

Существует 5 видов плагинов, которые создают большое число информации в базе данных:

  • Плагины безопасности. Большинство плагинов безопасности хранят большое число информации об атаках на веб-сайт для защиты его от будущих атак, о спаме, попытках доступа и так далее.
  • Плагины статистики. Данные плагины хранят информацию о страницах, визитах, браузерах, ключевых словах и так далее.
  • Анти-спам плагины. Так же как плагины безопасности, данные плагины хранят большое число данных об IP-адресах, емейл адресах, странах и так далее.
  • Плагины вывода контента. Отображение контента в тех или других местах по тому или другому признаку, лайки и визиты страниц, и так далее. Данные плагины создают большое число информации, лучше использовать их по минимуму.
  • Мультиязычные плагины. Плагин WPML создает большое число таблиц и записей в БД.

Старайтесь использовать плагины статистики и вывода контента как можно меньше.

Спам

Спам — ещё один источник наполнения базы данных мусором. Вы можете удалить весь спам в базе данных с помощью SQL запроса:

DELETE FROM wp_comments WHERE comment_approved = ‘spam’

Или из админки WordPress. Зайдите в КомментарииСпам, нажмите кнопку «Очистить спам». Перед удалением всех комментариев проверьте их, в спам могли попасть нужные комментарии.

Ревизии записей

В версии 2.6 появилась функцию ревизии записей, которая может хранить предыдущие версии записей, а также черновики и обновления. Автосохранение сохраняет только последнюю версию, предпоследняя версия автосохранения удаляется автоматом.

Сейчас база данных не будет переполняться автосохранениями, но будет наполняться ревизиями, когда вы нажимаете «Обновить» или «Сохранить Черновик».

Ревизии записей — полезная функцию, и число ревизий можно ограничить. Добавьте данные строки в wp-config.php:Замените 4 на нужное число, -1 если вы хотели бы сохранять все ревизии и 0, если хотели бы выключить ревизии вообще, кроме автосохранения.

Чтобы удалить ревизии существующих записей, используйте этот запрос:

Этот запрос удаляет все ревизии всех записей, их метаданнные и таксономии.

Если вы не хотели бы использовать запросы, используйте плагин Optimize Database after Deleting Revisions или один из данных плагинов.

Удаление неиспользуемых таблиц

Некоторые плагины после удаления не удаляют ваши таблицы из базы данных. Если вы удалили плагин и не хотите снова его использовать, вы можете без проблем удалить его таблицы из БД. Для этого вы можете использовать плагин Advanced Database Cleaner или Advanced Database Cleaner Pro, или сделать это вручную.

Обычно плагины называют ваши таблицы именем плагина или главным классом плагина. Если вы не знаете, к чему относится таблица или запись, лучше не удаляйте или сделайте бэкап, поскольку удаленную информацию из БД нельзя восстановить.

Оптимизация БД вручную

У MySQL есть стандартная функцию оптимизации базы данных OPTIMIZE, которая «реорганизует физическое хранилище табличных данных и связанных с ними индексных данных, чтобы уменьшить пространство для хранения и повысить эффективность ввода-вывода при доступе к таблице». В различных движках запрос optimize работает по-разному.

Вы можете без труда оптимизировать базу данных запросом optimize в phpMyAdmin. Подробнее здесь.

Оптимизация БД с помощью плагинов

Если вы планируете, чтобы эту работу делал плагин, попробуйте WP-Optimize, это простой и популярный плагин, более 600.000 установок. Он удаляет ревизии записей, старые метаданные, черновики записей и удаленные комментарии.

  • Иные плагины для очистки и оптимизации базы данных

Восстановление БД

Если база данных повредилась, попробуйте восстановить ее при помощи модуля восстановления. Добавьте этот код в wp-config.php:

Сохраните файл, откройте в браузере этот адрес:

www.ваш-сайт.ru/wp-admin/maint/repair.php

На открывшейся странице вы можете без проблем восстановить базу данных или восстановить и оптимизировать. Выберите вариант, WordPress попытается восстановить поврежденную базу данных.

Восстановление и оптимизация базы данных
Восстановление и оптимизация базы данных

Иногда этот вариант восстановления базы данных не помогает, или помогает частично. В этом случае откройте phpMyAdmin и попробуйте восстановить БД вручную таблицу за таблицей.

Если этот метод не помог, то остается только восстановить базу данных из бэкапа, если он у вас есть. Если нет, то обратитесь к специалисту по базам данных.

  • Бэкап WordPress

База данных свежей установки WordPress 4.9.8

Как работает кеширование базы данных

Transients API

Options API — стандартный метод хранения информации в базе данных с простым созданием, обновлением и удалением записей. Transients API похож на Options API, но с дополнительной функцией срока хранения, которая упрощает работу с таблицей wp_options для временного хранения кешированной информации.

В Вордпрессе транзитное кеширование используется для постоянно обновляющихся данных, которые обновляются после установленного срока хранения.

Суть в том, чтобы кешировать постоянно создаваемые запросы к базе данных и обновлять их время от времени, не тратя времени на их создание и доставку посетителю.

Удаляйте transients с осторожностью.

Memcached

Memcached может кешировать большие запросы к БД в оперативной памяти, это уменьшает число обращений к базе данных. Это ускорит загрузку страниц, поскольку данные загружены без обращения к БД.

Если вы планируете использовать Memcached с плагином кеширования, например, W3 Total Cache, то сначала необходимо изменить Memcached на сервере, после этого подключить Memcached к плагину кеширования. Неправильно настроенный модуль Memcached может нарушить работу базы данных или веб-сайта, могут появиться проблемы с автоматическим обновлением или проблемы с темами и плагинами, которые используют transients.

Redis

Модуль Redis — это продвинутая технология хранения и кеширования базы данных в оперативной памяти, которая может загружать страницы намного быстрее.

Чтобы подключить Redis к веб-сайту, используйте плагин Redis Object Cache. Перед данным настройте Redis при помощи скрипта Predis или расширения Redis HHVM.

Разница между Memcached и Redis в том, что Memcached — это технология кеширования в оперативной памяти, а Redis — это сервер с правильно организованной структурой данных, который может быть использован для реального хранения данных, а не просто в виде хранилища обновляемого кеша.

Заключение

База данных — основа любого веб-сайта. Работа с базой данных может казаться трудной задачей, но если вы поняли механизм работы базы данных и используете хороший плагин, вы можете изменить это один раз и забыть.

Читайте также:

  1. Как настроить префикс базы данных
  2. Как очистить и оптимизировать Базу данных WordPress

Надеюсь, статья была полезна. Оставляйте комментарии.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *