Звучит как полная дичь. Верится с трудом. Лан как нить потом загуглю, ща на телефоне. Написанно что дефолтный метод битри и поиск по левым полям быстрее, так что по дефолту похоже "как езде"
Вот ведь Фома неверующий! Давай посмотрим.
Создаем таблицу и индекс:
CREATE TABLE test1 (
a int,
b int,
c int,
d int
);
CREATE INDEX test1_idx_a_b_c ON test1 (a, b, c);
Делаем запросы:
EXPLAIN SELECT * FROM test1 WHERE a=1;
EXPLAIN SELECT * FROM test1 WHERE b=1;
EXPLAIN SELECT * FROM test1 WHERE c=1;
EXPLAIN SELECT * FROM test1 WHERE d=1;
Результат MySQL, индекс используется только для кейса a=1 (потому что у нас индекс по полям a,b,c, соответственно при конкатенации если в запросе нет a, то мы не можем брать индекс test1_idx_a_b_c)
Пруф: https://www.db-fiddle.com/f/qRk35uu7CBEJsf7pFXWGTj/0
Теперь берем Postgres, для первых 3 запросов используется индекс test1_idx_a_b_c, внезапно. Потому что он внутри состоит из всех пермутаций.
Вот пруф: https://www.db-fiddle.com/f/dKt3F8V3R3VNkXAC262aiF/0
Для постгрес вывел список индексов, чтоб показать, что это именно b-tree (а не GIST, например, в котором порядок не важен), следовательно создались все пермутации набора (a,b,c), иначе это сделать невозможно.