Коллеги, всем привет! С вами Кирилл Михалько, надеюсь я вас не сильно утомляю своими портянками 😊 Сегодня поговорим о функциональных индексах. Это мощный инструмент, о котором порой даже не догадываются. Если ваши запросы используют функции в условиях WHERE или JOIN, обычные индексы не помогут - СУБД всё равно выполнит полное сканирование таблицы (есть нюансы). Функциональный индекс решает эту проблему, индексируя не сами данные, а результат вычисления функции. Как это работает Обычный индекс хранит значения столбца в отсортированном виде. Функциональный индекс идёт дальше - он сохраняет результаты применения функции к данным. Когда запрос использует ту же функцию в условии, оптимизатор может использовать этот индекс вместо пересчёта функции для каждой строки. Классический пример - поиск по email без учёта регистра: -- Без функционального индекса - полное сканирование SELECT * FROM users WHERE LOWER(email) = 'user@example.com'; -- Создаём функциональный индекс CREATE INDEX idx_use
Что такое функциональный индекс и как он ускоряет запросы с функциями
СегодняСегодня
2 мин