it-swarm.com.de

Wie kann der Index in einer MySQL-Auswahlabfrage verwendet werden?

Ich habe eine MySQL-Abfrage (mit MySQL 5.0.88), die ich beschleunigen möchte. Die zugrunde liegende Tabelle hat mehrere Indizes, und für die betreffende Abfrage wird der falsche Index verwendet (i_active - 16.000 Zeilen gegenüber i_iln - 7 Zeilen).

Ich bin nicht sehr erfahren mit MySQL, aber ich habe gelesen, dass es einen use index-Hinweis gibt, der dazu führen kann, dass mySQL einen bestimmten Index verwendet. Ich versuche es so:

 SELECT art.firma USE INDEX (i_iln)
 ...

dies führt jedoch zu einem MySQL-Fehler.

Frage :
Kann mir jemand sagen, was ich falsch mache? (Außer 5.0.88, was ich nicht ändern kann.)

30
frequent

Du hast den FROM table verpasst

Richtiges SQL sollte sein:

SELECT art.firma FROM your_table USE INDEX (i_iln) WHERE ....

54
Raptor
select * from table use index (idx);

http://dev.mysql.com/doc/refman/5.0/de/index-hints.html

5

manchmal wird mit use index (index_name) das Optimierungsprogramm möglicherweise für die Tabellensuche verwendet. Wenn Sie den Hinweis force index verwenden, wird das Optimierungsprogramm gezwungen, den Index zu verwenden, und nur für die Tabellensuche, wenn keine weiteren Möglichkeiten verfügbar sind die Zeilen mit dem angegebenen Index.

SELECT art.firma FROM art FORCE INDEX (i_iln);

weitere Informationen zu den Hinweisen USE INDEX und FORCE INDEX finden Sie in diesem Link

0
MikA

Wählen Sie Spalte1, Spalte2, Spalte .... AUS TABLE_NAME SE INDEX ( index_name WOBEI Coloumn = "condition" ;

wenn Sie den richtigen Index haben, müssen Sie index () nicht verwenden. Wählen Sie bei der automatischen Suche den richtigen Index aus. Wenn Ihre Suche nach dem Verwenden des Index langsam ist, überprüfen Sie Ihren Index erneut, da ein Fehler im Index vorliegt. Vielen Dank im Voraus. Geben Sie hier den Code ein

0