Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql select Abfrageoptimierung und wie Limit in mysql funktioniert

Die reguläre Indizierung kann nicht zur Verbesserung dieser Abfrage verwendet werden. MySQL-Indizes sind B-Bäume, was bedeutet, dass sie sehr schnell ein Präfix der indizierten Spalte finden können. Aber da Ihr LIKE Abfrage hat % Am Anfang gibt es kein eindeutiges Präfix, nach dem gesucht werden kann. Daher muss jede Zeile gescannt werden, um sie mit dem Muster abzugleichen.

MySQL unterstützt jedoch auch die Volltextsuche. Dadurch wird ein Index aller Wörter in der Spalte erstellt, und es kann diese Wörter schnell finden. Siehe die Dokumentation für Details.

Wenn Sie LIMIT 10 verwenden , stoppt es das Scannen, sobald es die ersten 10 Zeilen findet, die die Bedingungen erfüllen. Es sei denn, Sie verwenden auch ORDER BY -- dann muss es alle Zeilen finden, damit es sie sortieren kann, bevor es die ersten 10 auswählt.