Warum wird SQL-Index nicht benutzt?
Beim Optimieren von Tabellen und Abfragen für eine Software bin ich auf das Phänomen gestoßen, dass INDEXe nicht verwendet werden, obwohl sie es meinem (vielleicht zu naiven) Verständnis nach sollten.
Es ist ein Index auf losnr gesetzt.
Bei dieser einfachen Abfrage wird er benutzt:
EXPLAIN SELECT losnr FROM testORDER BY losnr LIMIT 0,50
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE test index NULL losnr 4 NULL 50 Using index
Sobald ich eine weitere Spalte mit Abfrage, nicht mehr (auch nicht wenn ich mit USE INDEX darauf bestehe):
EXPLAIN SELECT losnr,nr FROM test ORDER BY losnr LIMIT 0,50
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE test ALL NULL NULL NULL NULL 3330 Using filesort
Durch den Index möchte ich natürlich eine bessere Perfomance beim Lesen erreichen.
Wo liegt hier möglicherweise mein Denkfehler?
Danke im Voraus für alle Antworten und weiterführenden Links!
Beim Optimieren von Tabellen und Abfragen für eine Software bin ich auf das Phänomen gestoßen, dass INDEXe nicht verwendet werden, obwohl sie es meinem (vielleicht zu naiven) Verständnis nach sollten.
Es ist ein Index auf losnr gesetzt.
Bei dieser einfachen Abfrage wird er benutzt:
EXPLAIN SELECT losnr FROM testORDER BY losnr LIMIT 0,50
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE test index NULL losnr 4 NULL 50 Using index
Sobald ich eine weitere Spalte mit Abfrage, nicht mehr (auch nicht wenn ich mit USE INDEX darauf bestehe):
EXPLAIN SELECT losnr,nr FROM test ORDER BY losnr LIMIT 0,50
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE test ALL NULL NULL NULL NULL 3330 Using filesort
Durch den Index möchte ich natürlich eine bessere Perfomance beim Lesen erreichen.
Wo liegt hier möglicherweise mein Denkfehler?
Danke im Voraus für alle Antworten und weiterführenden Links!
Comment