Heim > Datenbank > MySQL-Tutorial > SQL „LIKE' vs. „=': Wann ist eines schneller als das andere?

SQL „LIKE' vs. „=': Wann ist eines schneller als das andere?

Mary-Kate Olsen
Freigeben: 2025-01-04 16:58:40
Original
191 Leute haben es durchsucht

SQL `LIKE` vs `=`: When Is One Faster Than the Other?

SQL „like“ vs. „=“ Leistung: Kontextanalyse

Die Frage, ob „like“ oder „=“ wann eine bessere Leistung erbringt Die Verwendung von SQL-Platzhaltern wurde in der Vergangenheit bereits thematisiert, aber gängige Meinung ist, dass „=“ schneller ist. Es ist jedoch wichtig, den spezifischen Kontext der Abfrage zu berücksichtigen.

In dem Szenario, in dem eine Spalte eine begrenzte Anzahl fester, fest codierter Varchar-Bezeichner enthält und die Aufgabe darin besteht, alle Zeilen auszuwählen, die mit einem dieser Bezeichner übereinstimmen, Es könnte den Anschein haben, dass „Gefällt mir“ einen Vorteil hätte. „Gefällt mir“ muss nur ein paar Anfangszeichen auf eine Übereinstimmung testen, während „=“ die gesamte Zeichenfolge vergleichen muss.

Wie jedoch in einem Artikel von John Nelson (archiviert unter https://web.archive.org/web/20150209022016/http://myitforum.com/cs2/blogs/jnelson/archive/2007/11/16/108354.aspx), die Regeln für die Indexnutzung mit „Gefällt mir“ sind nuanciert:

  • Wenn der Filter „=“ für ein indiziertes Feld verwendet, an INDEX/CLUSTERED INDEX SEEK wird wahrscheinlich verwendet.
  • Wenn „like“ ohne Platzhalter verwendet wird, ähnelt die Indexverwendung dem Fall von „=“.
  • Wenn „like“ mit verwendet wird ein Platzhalterzeichen am Anfang, kann ein INDEX-SCAN für einen gesamten oder einen Teilbereich des Index verwendet werden.
  • Wenn „like“ zuerst mit einer Zeichenfolge verwendet wird und Nach Platzhaltern kann ein INDEX SEEK verwendet werden, um übereinstimmende Zeilen zu finden, die dann auf eine genaue Übereinstimmung überprüft werden.

Daher hängt die Leistung von „like“ im Vergleich zu „=“ vom spezifischen Abfragekontext ab , die Position von Platzhaltern und das Vorhandensein von Indizes. Im Fall einer begrenzten Anzahl fest codierter Bezeichner kann „like“ bei einem vollständigen String-Vergleich tatsächlich eine schnellere Leistung als „=“ erbringen. Es ist jedoch wichtig, den spezifischen Anwendungsfall zu bewerten und eine Indexoptimierung in Betracht zu ziehen, um den optimalen Ansatz zu ermitteln.

Das obige ist der detaillierte Inhalt vonSQL „LIKE' vs. „=': Wann ist eines schneller als das andere?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage