Оптимизация базы данных: что замедляет сайт больше всего.
По статистике, 70–80% времени загрузки типичного сайта на CMS уходит на запросы к базе данных. Оптимизация кода и хостинга даёт 20–30% прироста, оптимизация базы — остальное.
Чаще всего замедляют работу:
Отсутствие индексов. Индекс — это как оглавление в книге. Без него база просматривает всю таблицу для каждого запроса. С индексом находит нужные строки мгновенно. Для таблицы с миллионом записей разница — секунды vs миллисекунды.
N+1 запрос. Классическая проблема: программа делает 1 запрос для получения списка, потом ещё N запросов для каждого элемента. Итого N+1 запросов вместо одного с JOIN.
Большие SELECT *. Запрос выбирает все колонки, хотя нужны только две-три. Лишние данные передаются из базы и занимают память.
Настройка кэширования базы данных. MySQL и PostgreSQL имеют встроенный кэш запросов. Правильная настройка буферных пулов может дать прирост производительности без изменения кода.
Инструменты для диагностики: EXPLAIN в MySQL/PostgreSQL покажет план выполнения запроса и укажет на проблемные места. slow_query_log включит журнал медленных запросов. Анализ логов за неделю обычно выявляет 3–5 запросов, которые дают 80% нагрузки.
Облачный Хостинг
@cloud_hosting_ru_n1k
Оптимизация базы данных: что замедляет сайт больше всего.
Этот пост опубликован в Telegram-канале Облачный Хостинг. Подписаться можно по ссылке: @cloud_hosting_ru_n1k.