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
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
- Thomas Rachel (28.09.2009 08:32)
- Andreas Born (28.09.2009 16:52)
- Dominik Echterbruch (28.09.2009 18:21)
- Thomas Rachel (28.09.2009 21:23)
- Andreas Kretschmer (28.09.2009 08:47)
- Axel Schwenke (28.09.2009 10:36)
- Andreas Born (28.09.2009 16:51)
