Возможные причины, по которым индекс PK правильно используется в одной среде, но игнорируется в другой. (Postgresql) - PullRequest
0 голосов
/ 02 апреля 2020

Я исследую проблему производительности запроса и обнаружил, что он не использует INDEX, как мы ожидали. Он использует наш индекс на сервере разработки, но по какой-то причине его нет на рабочем сервере. Я уже проверил, что индекс существует и что порядок правильный.

Это просто упрощенная версия запроса: (вероятно, он будет работать, как и ожидалось, на вашем P C, но он также не удался в локальной среде моего сотрудника)

CREATE TABLE t (
    a INT, b INT, c TEXT, d DATE, e TEXT, f INT, g INT, h INT,
    PRIMARY KEY (a,b,c)
);
EXPLAIN ANALYZE 
SELECT * FROM t ORDER BY a, b, c;

В: Что может привести к разным результатам для одной базы данных / среды?

dev : Index Scan using t_pkey on t
prod: Sort Key a, b, c Sort Method: quicksort (on actual production it's external merge)

Настройки / конфигурация? Количество записей? Владение? Postgresql версия такая же (10.5). Спасибо!

...