Библиотека PHP программиста

@php_lib
Фото Индексы в PostgreSQL/MySQL. Что мы забываем? Ты добавил индекс, но запрос всё равно тормозит. Почему? База данных не всегда использует индексы так, как вы ожидаете. Вот быстрый чеклист для проверки перед деплоем миграции. 📋 Чеклист по индексам: 1. Cardianlity (Селективность): Индекс по полю gender (M / F) почти бесполезен. Базе проще прочитать всю таблицу (Full Scan), чем прыгать по индексу, который отсеет всего 50% записей. 2. Порядок в составном индексе: Правило «слева направо». 💜 Индекс (group_id, status) сработает для WHERE group_id = 5. 💜 Но НЕ сработает эффективно для WHERE status = active. 3. Функции убивают индекс: 💜 WHERE YEAR(created_at) = 2026 - индекс по created_at игнорируется. 💜 WHERE created_at >= '2026-01-01' - индекс работает. 4. LIKE с процентом в начале: 💜 LIKE '%text' - Full Scan. Индекс бесполезен. 💜 LIKE 'text%' - Range Scan. Индекс работает. 5. Типы данных: Сравнение строки с числом (неявное приведение) может отключить использование индекса. Совет: Всегда делайте EXPLAIN (или EXPLAIN ANALYZE) на сложных запросах перед выкаткой. Доверяй, но проверяй. #database #sql #optimization #mysql #postgres 👉 @php_lib
Если у вас установлено приложение,
вы можете сразу перейти в канал