Когда индексы в БД неэффективны

Python Junior Рунити
Когда индексы в БД неэффективны
Ответы
Индексы могут быть неэффективны в следующих случаях: - **Частые операции записи (INSERT/UPDATE/DELETE)** – индексы замедляют их, так как требуют обновления структуры данных. - **Маленькие таблицы** – полное сканирование может быть быстрее, чем поиск по индексу. - **Низкая селективность данных** – если у столбца мало уникальных значений (например, пол "М/Ж"), индекс не даст преимущества. - **Использование функций в условиях WHERE** – `WHERE UPPER(name) = 'IVAN'` не использует индекс по `name`. - **Несоответствие типа данных** – сравнение строки с числом `WHERE id = '123'` может игнорировать индекс. Пример неэффективного индекса: ``` -- Плохо: индекс не поможет из-за функции SELECT * FROM users WHERE DATE(created_at) = '2023-01-01'; -- Лучше: использовать диапазон SELECT * FROM users WHERE created_at >= '2023-01-01' AND created_at < '2023-01-02'; ```