PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suchfunktion


Zudecke
25.02.2005, 10:54:34
Hi,
Mal angenommen, man hat 50000 Datensätze oder so in ner DB und möchte nach nem ganz bestimmten Begriff suchen, der da in irgendeinem Feld steckt. Wie macht man sowas am Besten? Ist nicht sinnvoll, sämtliche Datensätze und Spalten zu durchlaufen, oder? Der Begriff könnte ja auch in irgendeinem Text stehen, wo er ja auch gefunden werden sollte. Das würde zu lange dauern, oder? Wie macht man denn sowas? Vielleicht ne Such-Tabelle anlegen, in der mögliche Suchbegriffe drin sind, und die dann mit entsprechenden Datensätzen verbunden sind?
Gruß

|Coding
25.02.2005, 11:46:23
die letztere variante ist meiner meinung nach die beste.

leg dir einen suchindex an, in dem du "schlagworte" mit bestimmten datensätzen verknüpfst. in diese "schlagwort"-tabelle, schreibst du aber nicht jedes wort rein, sprich keine allgemeinen und viel benutzen worte wie z.b. "hallo", "mit", "der", "die" oder "das".

bei der suche durchläufst du dann den such index und gibst als teffer die verknüpften datensätze aus.

Zudecke
25.02.2005, 12:30:11
Ok,
hab noch mal so ne Frage: Ich bau mir ne Abfrage zusammen, in der ungefähr 500x "WHERE id=1 OR id=2 OR id=3..." vorkommt. Darf man das, oder kann das bei vielen Datensätzen auch wieder zu Performanceeinbußen kommen?

c4
25.02.2005, 12:33:48
Dafür gibt's IN()
--> http://dev.mysql.com/doc/mysql/en/comparison-operators.html
Wie's mit der Performance ausschaut weiß ich nicht.

Zudecke
25.02.2005, 12:51:49
Ok, dankeschön.