Если плагин начал «тупить», сначала смотрят не на сервер, а на запросы. Типовые причины: выборка без `WHERE`, `SELECT *` там, где нужны 2 поля, и одинаковый запрос внутри цикла. В WordPress это быстро превращается в лишние обращения к БД и лишнюю нагрузку.
Хороший чек-лист для плагина:
• индексируй поля, по которым идет поиск и сортировка
• не делай запросы в `admin_init`, если данные нужны только на конкретной странице
• для массовых операций используй `prepare()` и батчи, а не десятки отдельных `UPDATE`
• кэшируй результаты там, где они повторяются между запросами
Отдельная ошибка — хранить в `wp_options` все подряд. Этот слой удобен для настроек, но не для больших наборов данных, фильтров и истории изменений. Когда записи начинают расти, нужна отдельная таблица с понятной схемой, ключами и сроком жизни данных.
Перед релизом проверь три вещи: запрос можно объяснить одной фразой, у него есть понятные поля фильтрации, и он не выполняется чаще, чем реально нужно. Если это не так, база рано или поздно станет узким местом, даже если код выглядит аккуратно.
Создание плагинов для WordPress
@plugin_development_pro_ww
База данных не тормозит сама: чаще всего ее ломают запросы и структура
Этот пост опубликован в Telegram-канале Создание плагинов для WordPress. Подписаться можно по ссылке: @plugin_development_pro_ww.