nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Such Optimierung einer sql-abfrage

Von: Andreas Born (andreas.born@gmx.de) [Profil]
Datum: 28.09.2009 07:55
Message-ID: <7ib1gvF2vopuvU1@mid.individual.net>
Newsgroup: de.comp.datenbanken.mysql
Hallo,

zunächst sorry für den wenig aussagekräftigen Betreff.
Ich habe eine sql-query, die leider sehr viel performance kostet.

Gegeben ist eine Tabelle mit einem TEXT-Feld, in dem z.B. Orte
hinterlegt werden, die Anzahl ist frei, der Trenner sollte ein Komma
sein. Beispiel:  "Ulm, Frankfurt Oder, Fulda, Köln, Bad Urach, Kiel".

Nun soll eine Suche ermöglichen, diese Einträge zu finden, allerdings
mit Hilfe einer Entsprechungstabelle. D.h. es existiert eine zweite
Tabelle, die aus einem bestimmten Suchbegriff mehrere Begriffe
generiert, die in der eigentlichen Suche or-verknüpft sind. Beispiel
wäre, wenn der Suchende einen Ortsnamen auf Englisch oder Französisch
eingibt.

Aktuell wird mittels "select .... where

`ort` like '%abc%' OR
`ort` like '%def%' OR
...
`ort` like '%xyz%' "

gesucht, wobei jede zeile für eine Entsprechung steht, die enthalten
sein könnte. Die Jokersuche bedeutet einen vollen Tablescan.

Wäre ein Volltext-Index hier die richtige Wahl?

Oder wie geht man in einem solchen Fall gewöhnlich vor, gibt es tricks,
z.B. mit einer eigenen Indextabelle?


Viele Grüße,
Andreas


[ Auf dieses Posting antworten ]

Antworten