Heim  >  Artikel  >  Datenbank  >  Hier sind einige Optionen für einen ansprechenden, fragenbasierten Titel, der das Problem und die Lösung hervorhebt: * **Wie optimiere ich MySQL LIKE \'%string%\'-Abfragen in InnoDB?** (Direkt und unkompliziert) * **In

Hier sind einige Optionen für einen ansprechenden, fragenbasierten Titel, der das Problem und die Lösung hervorhebt: * **Wie optimiere ich MySQL LIKE \'%string%\'-Abfragen in InnoDB?** (Direkt und unkompliziert) * **In

Patricia Arquette
Patricia ArquetteOriginal
2024-10-25 09:24:02280Durchsuche

Here are a few options for an engaging question-based title, emphasizing the problem and solution:

* **How to Optimize MySQL LIKE '%string%' Queries in InnoDB?** (Direct and straightforward)
* **InnoDB's LIKE '%string%' Performance: Can Fulltext Ind

Optimieren von MySQL LIKE „%string%“-Abfragen in InnoDB

In einem Szenario mit einer Tabelle, die eine Schlüsselwortspalte und eine InnoDB-Speicher-Engine enthält, werden Abfragen mithilfe von LIKE optimiert Das Muster „%string%“ kann eine Herausforderung sein.

Problembeschreibung

Zunächst wurde der Schlüsselwortspalte ein einfacher Index hinzugefügt. EXPLAIN-Abfragen ergaben jedoch, dass die gesamte Tabelle gescannt werden musste, wenn Abfragen das Muster „%string%“ verwendeten. Dieser Index erwies sich nur für LIKE-Abfragen vom Typ „string%“ als nützlich.

Überlegungen zum Index

Für InnoDB-Tabellen werden Volltextindizes für Abfragen mit schwebenden Suchbegriffen bevorzugt, bei denen sich der Suchbegriff an einer beliebigen Stelle befindet die Zeichenfolge. Bisher wurde jedoch angenommen, dass InnoDB keine Volltextindizes unterstützt.

Lösung

In neueren Versionen (5.6.4 und höher) erhielt InnoDB Unterstützung für Volltextindizes. Das bedeutet, dass für optimierte LIKE „%string%“-Abfragen ein Upgrade auf InnoDB Version 5.6.4 oder höher empfohlen wird. Volltextindizes sind speziell für schwebende Suchbegriffe konzipiert.

Vorteile von Volltextindizes

Durch die Verwendung von Volltextindizes können „schwebende“ Suchbegriffe effizient in der Schlüsselwortspalte lokalisiert werden. Dadurch entfällt die Notwendigkeit, die gesamte Tabelle zu scannen, was die Abfrageleistung für LIKE „%string%“-Abfragen in InnoDB-Tabellen erheblich verbessert.

Das obige ist der detaillierte Inhalt vonHier sind einige Optionen für einen ansprechenden, fragenbasierten Titel, der das Problem und die Lösung hervorhebt: * **Wie optimiere ich MySQL LIKE \'%string%\'-Abfragen in InnoDB?** (Direkt und unkompliziert) * **In. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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