2017-08-04 3 views

Antwort

1

Dieser bestehende Index auf Primärschlüssel sollte in diesem Fall genug sein, da mit PRIMARY KEY (x, y, z), was Sie im Wesentlichen haben, ist ein Covering Index. Siehe What is a Covered Index?

1

Der Primärschlüssel-Index ist ausreichend für die Abfrage. Es ist jedoch nicht optimal.

Damit Postgres den Index zu verwenden, muss es alle Einträge in dem Index, in dem x = ? abzutasten, um die passenden Werte für z zu finden. Dies könnte gut genug Leistung sein.

Aber wäre der optimale Index für die Abfrage (x, z, y), da diese effizient die Abfrage und erfüllt die where Klausel abdeckt. Der nächstbeste Index ist (x, z), weil er die where Klausel abdeckt. Der vorhandene Primärschlüssel-Index wird teilweise für die where-Klausel verwendet (unter der Annahme, dass Statistiken in der Tabelle angeben, dass ein Index verwendet werden sollte).

Verwandte Themen