Ich habe eine Postgres-Datenbank, die 2 Spalten hat, die keine Primärschlüssel sind (noch sein können), aber auf einer Menge gesucht werden und für die Gleichheit mit 2 Spalten in anderen Tabellen verglichen werden.Wie ermittelt man, welche Art von Index in Postgres verwendet wird?
Ich glaube, das ist ein perfekter Fall für das Hinzufügen eines Index zu meinen Tabellen. Ich habe noch nie eine Indizierung in einer Datenbank durchgeführt, also versuche ich, die richtige Methode dafür zu finden.
Ich habe gelernt, dass es mehrere Arten der Indizierung gibt, die ich auswählen kann. Wie ermittle ich, welche Methode für meine Datenbank am effizientesten ist? Wäre es auch sinnvoll, einen einzigen Index zu erstellen, der beide Spalten abdeckt?
danke, ich habe meine Fragen nur ein bisschen aktualisiert. Ich suche eigentlich nur nach Gleichheit, also vermute ich, dass ein Hash-Index der Beste sein wird. – Kellenjb
Scratchen, dass Hash nicht über mehrere Spalten hinweg funktioniert. Ich schätze, ich muss etwas experimentieren, um zu sehen, ob 2 separate Hashes schneller sind als 1 single b-tree – Kellenjb
Sie wollen im Allgemeinen keinen Hash-Index verwenden. Aus der Dokumentation von pg 9.1: "Hash-Index-Operationen werden derzeit nicht mit WAL protokolliert, so dass Hash-Indizes nach einem Datenbankabsturz möglicherweise mit REINDEX neu erstellt werden müssen. Sie werden auch nicht über Streaming oder dateibasierte Replikation repliziert der Indexgebrauch wird derzeit abgeraten. " –