[MySQL] Optimierung für Suchfunktion

atwo

notorisch abwesend
ID: 195558
L
20 April 2006
2.275
138
Hi,
ich schreibe mir gerade für privaten Gebrauch ein kleines Blogscript, soll nichts aufwendiges werden. Das Script soll auch eine Suchfunktion beinhalten, sprich man soll nach einem Begriff im Titel und im Text suchen können.

Folgende Ansätze habe ich:

1.)
Jeder Blogeintrag bekommt Schlüsselwörter, die ich manuell eingebe. Der Text über Klamm hat dann zum Beispiel die Schlüsselwörter "Klamm|Community|News|Promotion", die ich
a) in der gleichen Tabelle wie den Eintrag speichere oder
b) in einer eigenen Suchtabelle, verknüpft mit der jeweiligen Eintrags-ID

2.) Ich durchsuche jeden Blogeintrag komplett. Dadurch lässt sich ziemlich genau nach Schlüsselwörtern suchen, die ich vllt. vergessen habe anzugeben, allerdings würde es die Suche ziemlich rechenintesiv machen.


Welche Lösung empfehlt ihr? Gibt es vllt. noch einen viel besseren Ansatz? Würde gerne mal eure Meinung zum Thema hören.

Gruß, atwo
 
Zuletzt bearbeitet:
Gibt es vllt. noch einen viel besseren Ansatz?

Warum willst du die Schlüsselwörter in der gleichen Relation speichern? Das gibt doch gar keinen Sinn. Die kommen in eine eigene Relation.
Wenn du einen vernünftigen Ansatz haben willst, bau dir erstmal ein vernüftig normalisiertes Datenbankschema.
 
Volltextindizierung, was Johnson schon erwähnt hat, ist um Meilen effizenter als eine Extra-Tabelle mit Relationen, da dieser Index speziell für diesen Fall geschaffen wurde.