ChrisB: MATCH AGAINST - Eingrenzung

Beitrag lesen

Hi,

SELECT id FROM [tabelle] WHERE key = [key] AND MATCH ([text]) AGAINST ('[searchstring]')

Die Tabelle kann mitunter 20 mio Zeilen umfassen, wobei aber durch die Eingrenzung nach [key] nur einige hundert Zeilen übrig bleiben.

Mit dem oben beschrieben Statement werden allerdings, alle Zeilen per MATCH AGAINST durchsucht

Der Index, auf dem MATCH AGAINST arbeitet, wird nun mal fuer alle Datensaetze in der Tabelle angelegt, muss also wohl auch komplett "durchgefpluegt" werden, wenn du ihn zur Suche heranziehst.

Das wird sich auch mit einem Subquery wohl nicht umgehen lassen - weil das keinen "eigenen" Volltext-Index hat, auf dem dann MATCH AGAINST suchen koennte.

Hoechstens das Anlegen einer temporaeren Tabelle auf der Auswahl per key, dieser dann einen Volltext-Index verpassen - das koennte gehen. Aber das wird wohl kaum performanter sein, eher im Gegenteil - der Aufbau eines solchen Index ist extrem teuer.

MfG ChrisB

--
„This is the author's opinion, not necessarily that of Starbucks.“