yo,
Die Kardinalität hat damit gar nichts zu tun.
hat sie sehr wohl. nehmen wir zum beispiel eine kundentabelle mit der spalte ort. wir haben cirka 5000 kunden alle wohnen nun im Ort Berlin. ein index bringt hier rein gar nichts, wenn ich mir alle kunden aus berlin anzeigen lassen will. im gegenteil, wenn der optimierer (unter oracle zum besipiel unter rule based) den index sieht und nun über diesen alle aus berlin ermitteln will. das würde wesentlich länger dauern die 5000 datensätze über den index als ohne index auszugeben.
Ja, mit Index muss aber gar kein Fullscan gemacht werden.
dies trifft aber nur zu, wenn du sehr selektiv bist und dabei spielt die kardinalität wieder eine rolle. ein fullscan kann bei bestimmten abfragen sehr wohl besser sein, auch wenn es einen index gibt. eine faustregel besagt, wenn 10% der daten in die ergebnismenge kommen, dann ist ein b-tree index schneller.
Ilja