Индексы postgresql

Небольшая шпаргалка) Не претендует на то чтобы рассказать все, но чтобы быстро повторить перед собесом самое то B-tree собираемся искать по диапазонам, а не только по конкретному значению например between Hash - собираемся искать конкретно по значению GIN - индексируем значения например в JSON или ARRAY поле, когда на одну строку несколько значений GIST - как бы тоже дерево, но для нестандартных оператор, например частый пример точки в геопространстве, и например оператор ближайший сосед SP-Gist - несбалансированное дерево для нестандартных операторов. Выбирать между gist и sp-gist нужно для каждой задачи гулять какой алгоритм больше подойдёт BRIN- блочный индекс для временных рядов или архивные данных , данные должны быть по порядку так как хранится по диапазонам а не по конкретным срокам Bloom(через расширение) - быстро даёт ответ есть такая строка или нет, может ошибаться false positive, но никогда false negative быстрый и мало весит. Хорошо подходит, когда делаем проверку по and на много колонок быстро отекает если данных нет