Suche in MySQL via PHP
Wolle
- php
Hallo an alle,
ich habe ein kleines Effizienz-Problem mit einem Suchmaschinenentwurf und hoffe hier eine kleine wegweisende Antwort zu bekommen.
Aufgabe: 45MB Daten die via html-code vorliegen mit mysql/php durchsuchbar machen.
Da ich weiß dass der Datenumfang hier viel zu hoch ist um ihn in eier Mysql Tabelle durchsuchbar zu speichern, habe ich schon ein Programm geschrieben das den Datenumfang auf 5.5 MB "komprimiert" und ihn danach in eine MySQL-Tabelle schreibt.
Habe mir schon eine Verschlüsselung ausgedacht die das ganze nochmal um mindestens 50% im Datenumfang herunter drückt; werde dann also bei ca. 2.7mb für den Suchindex liegen.
Jetzt mein Prob: Da jede Tabellenzeile nicht nur einen Wert (einen einzigen String) sondern viele einzelne (zu durchsuchende)Strings als Wert enthält, komme ich mit den mysql funktionen "like" und "match" glaub ich nicht so weit. Ich habe allerdings mit diesen Funktionen auch nicht all zu viel Erfahrung.
Auf meinem Testserver mache ich es derzeit so; es werden die in der DB enthaltenen Strings einer nach dem anderen ausgelesen, via PHP durchsucht, verworfen ... und das ganze dann so lange bis die komplette Suche über alle 3600 Tabellenzeilen abgearbeitet ist. Mein Testserver ist ein alter 200er Pentium und ich bin der einzige der an diesen eine Anfrage stellen kann weil er bei mir zuhause im Lan steht (in dieser Konfig ist eine Suchanfrage immer schnell abgearbeitet).
Was aber mache ich wenn das ganze auf einem Internetserver steht der 3000 Anfragen am Tag bekommt ? wie bekomme ich die beste Performace ?
...villeicht doch mit "MATCH", und wenn ja, wie gestalte ich die Suche auf diesem Wege am effizientesten ?
Gruß, Wolle
Hallo Wolle...
vieleicht hilft dir der link ja weiter...
16.13. Wie realisiere ich eine Volltextsuche mit MySQL?
http://www.dclp-faq.de/q/q-mysql-volltextsuche.html
Hallo Wolle...
vieleicht hilft dir der link ja weiter...
16.13. Wie realisiere ich eine Volltextsuche mit MySQL?
http://www.dclp-faq.de/q/q-mysql-volltextsuche.html
Danke für den Tipp,
aber da war ich schon lange und konnte keinen Gewinn daraus ziehen. "LIKE" kann ich von vorn herein vergessen weil es auch nach Teilstrings sucht und somit für meine Zwecke zu langsam ist. Ich will zwar auch dass Teilstings gefunden werden, jedoch sollen in erster Instanz nur ganze Wörter gesucht werden, "MATCH" ist an dieser Stelle nicht schneller als das kleine PHP Stringleseprogrämmchen das ich schon geschrieben habe.
Trotzdem Danke Till
Wolle