Heim > Datenbank > MySQL-Tutorial > Hauptteil

## MySQL LIKE vs. LOCATE: Was ist schneller für den Mustervergleich?

DDD
Freigeben: 2024-10-25 01:52:30
Original
783 Leute haben es durchsucht

##  MySQL LIKE vs LOCATE: Which is Faster for Pattern Matching?

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%';
Nach dem Login kopieren

Die folgende Abfrage verwendet die LOCATE-Funktion, um denselben Vorgang auszuführen:

SELECT * FROM table WHERE LOCATE('text',column)>0;
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!