Techbear
Сайт для тех, кто хочет использовать Вордпресс по максимуму, но не хочет разбираться в коде.
База данных — это библиотека сайта, в которой в соответствующих разделах находится вся информация сайта.
В базе данных содержатся имена и пароли пользователей, содержание постов и страниц, товары и цены магазина, комментарии посетителей и весь остальной контент сайта.
В этой статье вы узнаете, как работает база данных, где находится база данных, какие движки для хранения информации используются и как оптимизировать и восстановить базу данных.
Содержание:
Что такое MySQL
Где находится база данных
Архитектура базы данных Вордпресс
Движки MySQL
Оптимизация базы данных
Восстановление БД
База данных свежей установки Вордпресс 4.9.8
Как работает кеширование базы данных
Заключение
Вордпресс использует SQL-запросы для работы с базой данных. Например, у пользователя есть роль Подписчика, SQL используется для его авторизации на сайте. При помощи sql запросов пользователь находится в базе данных, проверяются его права доступа и дается разрешение на вход. После этого проверяется правильность выведенных данных во фронт-энде.
PHP и SQL создают динамический контент, который зависит от запросов посетителя. Например, Имя пользователя, Роль пользователя, Категория, Метка, Дата, и так далее. Это позволяет показывать или скрывать контент в зависимости от этих запросов.
Кроме ядра Вордпресс базу данных используют темы и плагины. Они хранят свои настройки в базе данных, во время работы они создают SQL запросы к базе данных и получают ответы.
Это суть работы базы данных.
База данных находится на хостинге в панели администратора, иконка или ссылка должна называться «База данных», «Database», «MySQL» или что-нибудь подобное. Для администрирования базы данных используется приложение phpMyAdmin, которое установлено на хостинге.
База данных стандартной установки Вордпресс состоит из 11 неудаляемых таблиц, которые используются Вордпресс для своей работы.
В базе данных мультисайт установки Вордпресс находится еще несколько таблиц:
Кроме этих таблиц добавляются таблицы каждого подсайта в мультисайт установке, например, wp_2_commentmeta, wp_2_comments, wp_2_links и так далее. Данные основного сайта хранятся в своих основных ненумерованных таблицах.
Когда вы устанавливаете новый плагин, он использует базу данных сайта для хранения своей информации. Например, плагин рекламы хранит место для показа рекламы и саму рекламу в базе данных. При запросе нужной страницы плагин запрашивает эту информацию из базы данных и помещает ее в нужное место.
Плагины могут использовать стандартные таблицы Вордпресс, например, wp_posts или wp_postsmeta, или создавать свои собственные таблицы. Некоторые плагины создают свои собственные таблицы, например, WooCommerce создает 8 собственных таблиц, которые хранят ID товаров, заказы, налоги и так далее.
Считается более предпочтительным, чтобы плагины использовали стандартные таблицы Вордпресс для хранения своей информации, обычно для этого используется таблица wp_options. К сожалению, это не всегда возможно, особенно для таких больших плагинов как WooCommerce.
После того, как вы удалили плагин, можно удалить его таблицы из базы данных, потому что через некоторое время база данных будет наполнена большим количеством неиспользуемой информации. Некоторые плагины имеют встроенную опцию удаления своих таблиц из базы данных, некоторые — нет.
Если вы будете удалять таблицы или записи из базы данных, то сделайте бэкап, потому что удаленные таблицы нельзя восстановить.
MySQL использует разные движки для хранения и извлечения информации из таблиц базы данных. MySQL поддерживает несколько движков, самые популярные из них — MyISAM и InnoDB.
В большинстве случаев в конфигурационном файле MySQL по умолчанию установлен движок MyISAM.
Вы можете заменить движок MyISAM на InnoDB. MyISAM быстро считывает информацию. InnoDB тоже быстро считывает информацию, но записывает информацию быстрее с помощью механизма блокировки строк. Так как Вордпресс и считывает, и записывает информацию в базу данных, InnoDB будет лучшим выбором.
Обычно движок MyISAM установлен по умолчанию на недорогих хостингах. Чтобы сменить движок хранения базы данных, сделайте бэкап и используйте этот запрос:
SET default_storage_engine=InnoDB;
Чтобы изменить движок только одной таблицы, используйте этот запрос:
ALTER TABLE table_name ENGINE=InnoDB;
После того, как вы сменили движок, некоторые плагины могут записывать свои данные в базу данных, используя по умолчанию технологию MyISAM. Вы можете оставить как есть, база данных может работать с разными движками одновременно, или вручную измените движки этих таблиц.
Одна из причин медленного сайта — неочищенная и неоптимизированная база данных.
Первая оптимизация — измените движок на InnoDB. После этого очистите базу данных от мусора и оптимизируйте ее.
Перед очисткой / оптимизацией сделайте бэкап базы данных.
Хороший способ оптимизировать базу данных — не устанавливать плагины для тестирования на сайте. Тестируйте плагины на отдельном сайте.
Каждый плагин, который вы устанавливаете на сайт, создает свои записи в базе данных, то есть увеличивает размер базы данных.
Существует 5 видов плагинов, которые создают большое количество информации в базе данных:
Старайтесь использовать плагины статистики и вывода контента как можно меньше.
Спам — еще один источник наполнения базы данных мусором. Вы можете удалить весь спам в базе данных при помощи 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 и попробуйте восстановить БД вручную таблицу за таблицей.
Если этот способ не помог, то остается только восстановить базу данных из бэкапа, если он у вас есть. Если нет, то обратитесь к специалисту по базам данных.
Options API — стандартный способ хранения информации в базе данных с простым созданием, обновлением и удалением записей. Transients API похож на Options API, но с дополнительной функцией срока хранения, которая упрощает работу с таблицей wp_options для временного хранения кешированной информации.
В Вордпрессе транзитное кеширование используется для постоянно обновляющихся данных, которые обновляются после установленного срока хранения.
Суть в том, чтобы кешировать постоянно создаваемые запросы к базе данных и обновлять их время от времени, не тратя времени на их создание и доставку пользователю.
Удаляйте transients с осторожностью.
Memcached позволяет кешировать большие запросы к БД в оперативной памяти, это уменьшает количество обращений к базе данных. Это ускорит загрузку страниц, так как данные уже загружены без обращения к БД.
Если вы хотите использовать Memcached с плагином кеширования, например, W3 Total Cache, то сначала нужно настроить Memcached на сервере, после этого подключить Memcached к плагину кеширования. Неправильно настроенный модуль Memcached может нарушить работу базы данных или сайта, могут появиться проблемы с автоматическим обновлением или проблемы с темами и плагинами, которые используют transients.
Модуль Redis — это продвинутая технология хранения и кеширования базы данных в оперативной памяти, которая позволяет загружать страницы гораздо быстрее.
Чтобы подключить Redis к своему сайту, используйте плагин Redis Object Cache. Перед этим настройте Redis с помощью скрипта Predis или расширения Redis HHVM.
Разница между Memcached и Redis в том, что Memcached — это технология кеширования в оперативной памяти, а Redis — это сервер с правильно организованной структурой данных, который может быть использован для реального хранения данных, а не просто в качестве хранилища обновляемого кеша.
База данных — основа любого сайта. Работа с базой данных может казаться трудной задачей, но если вы поняли механизм работы базы данных и используете хороший плагин, вы можете настроить это один раз и забыть.
Читайте также:
Надеюсь, статья была полезна. Оставляйте комментарии.
Сайт для тех, кто хочет использовать Вордпресс по максимуму, но не хочет разбираться в коде.