MySQL LIKE vs. LOCATE Leistungsvergleich
Bei der Suche nach Daten in MySQL fragen Sie sich vielleicht, welcher Operator effizienter ist: LIKE oder LOCATE? In diesem Artikel werden die Leistungsunterschiede zwischen diesen beiden Operatoren untersucht.
In einem typischen Nutzungsszenario ist LIKE etwas schneller als LOCATE. Dies ist in erster Linie auf die Tatsache zurückzuführen, dass LIKE nicht den zusätzlichen Vergleich mit 0 durchführt, den LOCATE durchführt.
Wie die folgenden Benchmark-Ergebnisse zeigen, schneidet LIKE bei einer großen Anzahl von Iterationen durchweg geringfügig besser ab als LOCATE:
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)
Es ist wichtig zu beachten, dass diese Ergebnisse je nach der spezifischen Datenbankversion sowie der Größe und dem Inhalt der durchsuchten Tabelle variieren können. Im Allgemeinen gilt LIKE jedoch als der effizientere Operator für Wildcard-Suchen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3