Es kommt darauf an...
Es ist ziemlich unwahrscheinlich, dass ein Index nur auf column1
ist von Vorteil, wenn Sie bereits einen zusammengesetzten Index für column1, column2
haben . Seit column1
der führende Index ist, fragt die Tabelle ab, die nur column1
hat als Prädikat wird der zusammengesetzte Index verwendet werden können. Wenn Sie häufig Abfragen ausführen, die einen vollständigen Scan des Index und das Vorhandensein von column2
durchführen müssen die Größe des Index erheblich erhöht, ist es möglich, dass ein Index nur auf column1
wäre effizienter, da der vollständige Index-Scan weniger E/A-Vorgänge ausführen müsste. Aber das ist eine ziemlich ungewöhnliche Situation.
Ein Index nur für column2
kann von Vorteil sein, wenn einige Ihrer Abfragen für die Tabelle Prädikate nur für column2
angeben . Wenn es relativ wenige eindeutige Werte von column1
gibt , ist es möglich, dass Oracle einen Index-Skip-Scan mit dem zusammengesetzten Index durchführt, um Abfragen zu erfüllen, die nur column2
angeben als Prädikat. Aber ein Skip-Scan ist wahrscheinlich viel weniger effizient als ein Range-Scan, daher ist es ziemlich wahrscheinlich, dass ein Index nur auf column2
liegt würde diesen Abfragen zugute kommen. Wenn es eine große Anzahl unterschiedlicher Werte für column1
gibt , wäre der Skip-Scan noch weniger effizient und ein Index nur auf column2
wäre vorteilhafter. Natürlich, wenn Sie die Tabelle niemals mit column2
abfragen ohne auch ein Prädikat für column1
anzugeben , benötigen Sie keinen Index nur für column2
.