@P747

PostgreSQL создания одного индекса для нескольких колонок одного типа?

Добрый день!

Если создать один индекс, одного типа для нескольких колонок одного типа, это не повлияет на скорость поиска при запросе на каждую колонку, так же как бы если сделать индекс для каждой колонки?
  • Вопрос задан
  • 277 просмотров
Решения вопроса 2
@Vitsliputsli
Составной индекс - это не 2 разных индекса. Частичное использование составного индекса позволяет его использовать, как индекс на 1 поле, но только для 1 поля, а не 2х.
Ответ написан
Melkij
@Melkij
PostgreSQL DBA
Если мы создадим составной индекс для этих колонок и будем искать значение

Прямым текстом расписано в документации: https://www.postgresql.org/docs/current/indexes-mu...

Решающий момент: какой именно индекс и под какие именно операторы.
Например,
where a = ?
одинаково успешно пойдёт по btree(a, b) и по btree(a), но не по btree(b,a) - поиск по btree выполняется в leftmost порядке.
А для, например, brin будет без разницы, будь то brin(a,b) или brin(b,a)

под where a > ? and b = ?
будет эффективен btree(b,a), а вот btree(a,b) - уже менее эффективен.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы