PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PostgreSQL+Tabellenpartitionierung:ineffizient max() und min()

Ich weiß nicht, ob es funktioniert, aber du könntest Folgendes versuchen:

Für diese Sitzung könnten Sie alle Zugriffsstrategien außer den indizierten deaktivieren:

db=> set enable_seqscan = off;
db=> set enable_tidscan = off;
db=> -- your query goes here

Auf diese Weise wird nur bitmapscan und indexscan aktiviert wäre. PostgreSQL wird keine andere Wahl haben, als Indizes zu verwenden, um auf Daten in der Tabelle zuzugreifen.

Denken Sie nach dem Ausführen Ihrer Abfrage daran, seqscan wieder zu aktivieren und tidscan indem Sie Folgendes tun:

db=> set enable_seqscan = on;
db=> set enable_tidscan = on;

Andernfalls werden diese Zugriffsstrategien ab diesem Zeitpunkt für die Sitzung deaktiviert.