index mit mehreren Spalten - ok, wenn dabei die Abfrage auf nur eine Spalte?

Wenn ich eine Tabelle

create table sv ( id integer, data text )

und ein index:

create index myindex_idx on sv (id,text)

wäre das noch sinnvoll sein, wenn ich habe eine Abfrage

select * from sv where id = 10

Mein Grund für die Frage ist, dass ich bin auf der Suche durch eine Reihe von Tabellen mit Indizes und sehen Sie verschiedene Kombinationen von select-Abfragen. Einige Anwendungen nur eine andere Spalte hat mehr als eine. Muss ich haben-Indizes für beide sets ist oder ein all-inclusive-index-ok?
Ich bin das hinzufügen der Indizes für schnellere Suchvorgänge als full-table-scans.

Beispiel (bezogen auf die Antwort von Matt Huggins):

select * from table where col1 = 10
select * from table where col1 = 10 and col2=12
select * from table where col1 = 10 and col2=12 and col3 = 16

konnten alle abgedeckt werden, die durch den index-Tabelle (co1l1,col2,col3), aber

select * from table where col2=12

müsste einen anderen index?

  • Ich habe gerade <3 StackOverflow. Ausgezeichnete Antworten übrigens besser als erwartet. Ich akzeptierte die Antwort, die ich verwendet, und ermöglichen höchste stimmten die Antwort zu sein, ergänzen Sie direkt unterhalb der akzeptierten Antworten
InformationsquelleAutor svrist | 2009-12-08
Schreibe einen Kommentar