MySQL-Abfrage

xanthos

Mitglied
Guten Tag

Ich habe eine MySQL-Tabelle mit 130'000 Datensätzen, die ich gerne durchsuchen möchte. Die Tabelle besteht aus "nur" zwei Feldern (id -> int(11) und besch -> text()). Das Feld "besch" enthält im Durchschnitt 5000 Zeichen.

Wenn ich nun die einfach Abfrage "SELECT * FROM tabelle WHERE besch LIKE '%suchbegriff%' LIMIT 0,30" ausführe, dauert es 13 Sekunden, bis ich das Ergebnis habe. Indexes sind gesetzt, nützen aber bei einer "LIKE"-Abfrage ja leider nichts.

Wie kann ich das optimieren? Wenn ich mir da die Suchzeiten von Google oder ebay anschaue, die ja das 1'000-fache an Datensätzen haben, und innerhalb von einigen hundersteln Sekunden ein Ergebnis liefern (das kann ja wohl nicht nur an der Serverleistung liegen!?).

Besten Dank
 
SELECT * FROM tabelle WHERE MATCH (besch) AGAINST ('*suchbegriff*' IN BOOLEAN MODE)

Habe gerade herausgefunden, dass damit die Suche bereits wesentlich schneller ist. Gibt es noch weitere "Tricks", wie man eine solche Volltextsuche beschleunigen kann?
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück