Sobes.tech
Junior — Middle
81

Qu'est-ce qui peut faire en sorte qu'un index dans PostgreSQL ne soit pas utilisé pour exécuter une requête?

Entreprises à qui on a demandé
AstonAston

Réponse de l'IA

sobes.tech IA

Индекс в PostgreSQL может не использоваться по нескольким причинам:

  • Запрос возвращает слишком большой процент строк, и планировщик считает, что полное сканирование таблицы (Sequential Scan) будет быстрее.
  • Использование функций или операций, которые не могут быть оптимизированы индексом (например, LIKE с шаблоном в начале, или преобразования столбца).
  • Отсутствие подходящего индекса для условий WHERE.
  • Статистика таблицы устарела, и планировщик принимает неверные решения (решается командой ANALYZE).
  • Запрос использует типы данных или операторы, для которых индекс не подходит.

Пример: если у вас есть индекс по столбцу "name", но запрос содержит условие WHERE LOWER(name) = 'john', индекс не будет использован, если нет функционального индекса по LOWER(name).