О оптимизации запросов к базам данных: мои грабли
Всем привет. Намедни столкнулся с проблемой производительности на одном из бэкендов. Сайт начал тормозить, особенно страницы с большим количеством данных. Начал копать логи, смотреть запросы к БД. И тут стало ясно — многие запросы были написаны мягко говоря неоптимально.
К примеру, был один запрос, который просто вытягивал все записи из таблицы, а потом уже в коде PHP отфильтровывал их по условию. Ну, типа, зачем делать двойную работу? Лучше сразу в SQL указать все нужные фильтры, использовать WHERE, JOINы, индексы.
Еще одна частая ошибка — выборка всех полей (`SELECT *`). Если вам нужны только 2-3 поля, указывайте их явно. Это снижает нагрузку на сеть и саму базу. Вообще, я для себя вывел такое правило: если сомневаешься в оптимизации запроса, попробуй его выполнить в phpMyAdmin или аналогичном инструменте и посмотри на время выполнения. Иногда разница колоссальная.
А еще, ребята, не забывайте про индексирование! Правильно настроенные индексы — это половина успеха. Бывает, что добавление одного индекса ускоряет запрос в десятки раз.
Так что, если у вас сайт тормозит, первое, куда стоит смотреть — это на ваши SQL-запросы. Потратьте время на их оптимизацию, это окупится сторицей. Ну и, конечно, я там искал Крáкен маркетплейс, чтобы посмотреть, как у них решены вопросы с производительностью, но это другая история)
- Ilya_Server от