Heim >Datenbank >MySQL-Tutorial >## MySQL LIKE vs. LOCATE: Was ist schneller für den Mustervergleich?
MySQL LIKE vs. LOCATE: Was ist effizienter?
Beim Durchführen von Mustervergleichsabfragen in MySQL haben Sie zwei Hauptoptionen: LIKE Operator und die LOCATE-Funktion. Welcher ist schneller?
Um diese Frage zu beantworten, vergleichen wir die Leistung dieser beiden Ansätze anhand eines einfachen Benchmarks. Die folgende Abfrage verwendet den LIKE-Operator, um Zeilen zu finden, in denen eine Spalte einen bestimmten Text enthält:
SELECT * FROM table WHERE column LIKE '%text%';
Die folgende Abfrage verwendet die LOCATE-Funktion, um denselben Vorgang auszuführen:
SELECT * FROM table WHERE LOCATE('text',column)>0;
Wird ausgeführt Diese Abfragen für einen großen Datensatz zeigen, dass der LIKE-Operator geringfügig schneller ist, vor allem weil er den zusätzlichen Vergleich (> 0) vermeidet, der für LOCATE erforderlich ist. Hier sind die Ergebnisse eines Benchmarks:
mysql> SELECT BENCHMARK(100000000,LOCATE('foo','foobar')); +---------------------------------------------+ | BENCHMARK(100000000,LOCATE('foo','foobar')) | +---------------------------------------------+ | 0 | +---------------------------------------------+ 1 row in set (3.24 sec) mysql> SELECT BENCHMARK(100000000,LOCATE('foo','foobar') > 0); +-------------------------------------------------+ | BENCHMARK(100000000,LOCATE('foo','foobar') > 0) | +-------------------------------------------------+ | 0 | +-------------------------------------------------+ 1 row in set (4.63 sec) mysql> SELECT BENCHMARK(100000000,'foobar' LIKE '%foo%'); +--------------------------------------------+ | BENCHMARK(100000000,'foobar' LIKE '%foo%') | +--------------------------------------------+ | 0 | +--------------------------------------------+ 1 row in set (4.28 sec) mysql> SELECT @@version; +----------------------+ | @@version | +----------------------+ | 5.1.36-community-log | +----------------------+ 1 row in set (0.01 sec)
Das obige ist der detaillierte Inhalt von## MySQL LIKE vs. LOCATE: Was ist schneller für den Mustervergleich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!