Получи 1 из 3 лицензий WPForms бесплатно!

Giveaway от разработчика плагина. Срок проведения 01.11.2019 – 31.12.2019.

wpforms-logo-300
 »  Производительность  »  База данных Вордпресс

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

Последнее обновление:

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

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

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

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

Содержание:

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

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

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

Что такое MySQL

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

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

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

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

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

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

Архитектура базы данных Вордпресс

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

  • wp_commentmeta — метаданные всех комментариев на Постах и Страницах и в кастомных видах записей.
  • wp_comments — все комментарии на сайте, включая Опубликованные, Ожидающие проверки, Одобренные и Спам.
  • wp_links — информация о ссылках в менеджере ссылок; эта функция сейчас редко используется, после версии 3.5 скрыта по умолчанию.
  • wp_options – самая большая таблица Вордпресс, в которой хранится множество настроек, от адреса сайта до настроек Чтения и Обсуждения. В этой таблице хранят свои записи темы и плагины.
  • 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 – в этой таблице хранятся данные о всех пользователях сайта.

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

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

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

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

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

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

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

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

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

Движки MySQL

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

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

Вы можете заменить движок MyISAM на InnoDB. MyISAM быстро считывает информацию. InnoDB тоже быстро считывает информацию, но записывает информацию быстрее с помощью механизма блокировки строк. Так как Вордпресс и считывает, и записывает информацию в базу данных, 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’

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

Ревизии постов

В версии 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

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

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

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

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

База данных свежей установки Вордпресс 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. Как очистить и оптимизировать Базу данных Вордпресс

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

Оставьте комментарий

Do NOT follow this link or you will be banned from the site!