Suchfunktion resourcenschonend

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Suchfunktion resourcenschonend

    Hallo

    ich mache mir gerade Gedanken wie ich resourcenschonend eine Suchfunktion mit PHP und mySQL verwirklichen kann. Zunächst erkläre ich euch mal die Umgebung des Ganzen:

    Also in der Datenbank werden Datensätze gespeichert, denen ich einzeln Suchwörter zuordnen kann. Nun könnte man diese natürlich in ein Feld des Datensatzes durch ein ";" getrennt speichern und dann bei jeder Suchanfrage alle auslesen lassen. Allerdings ist dies wohl nicht sonderlich serverschonend.

    Hat jemand eine andere Idee wie man so etwas verwirklichen kann. Es ist davon auszugehen, dass es viele Datensätze geben wird.

    MfG
    Alex

  • #2
    Normalisiere erstmal dein Schema! Suchbegriffe mit ; getrennt in eine Spalte zu schreiben ist Unfug.

    Kommentar


    • #3
      Original geschrieben von onemorenerd
      Normalisiere erstmal dein Schema! Suchbegriffe mit ; getrennt in eine Spalte zu schreiben ist Unfug.
      Ja weiß ich. Hab ich doch selber oben geschrieben, dass sowas nicht sinnvoll ist. Ich brauch ein Konzept wie man es stattdessen machen sollte.
      Zuletzt geändert von blitziii; 20.08.2006, 15:42.

      Kommentar


      • #4
        Mysql-Manual nach Volltext-Suche absuchen

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Was ich da nun gefunden habe, ist genau das was ich im ersten Posting geschrieben habe.

          Also wird z.B. sowas gemacht:
          PHP-Code:
          mysql_query("SELECT id FROM table WHERE suchwoerter LIKE '%such_str%'"); 
          Im Feld Suchwoerter sind dann die Suchwoerter, die bei der Suche als Kriterium herangezogen werden sollen.

          Aber dies kann doch bei großen Datenbanken nicht ressourcenschonend sein. Das vBulletion-Forum beispielsweise durchsucht doch auch nicht bei jedem Suchen die komplette posts Tabelle nach einer Zeichenkette.

          Kommentar


          • #6
            ach so. was macht es dann, um die einträge zu finden? raten?
            http://dev.mysql.com/doc/refman/5.0/...xt-search.html

            Kommentar


            • #7
              Original geschrieben von penizillin
              ach so. was macht es dann, um die einträge zu finden? raten?
              http://dev.mysql.com/doc/refman/5.0/...xt-search.html
              Wieso raten? Wenn man in den CodeSchnipsel von mir noch das vergessene $ einbaut, passt das doch.

              Kommentar


              • #8
                Wieso raten?
                wie denn sonst - wenn deiner meinung nach nicht alles durchsucht wird?
                Wenn man in den CodeSchnipsel von mir noch das vergessene $ einbaut, passt das doch.
                was passt?

                Kommentar


                • #9
                  Achso meinst du das. Also bei den vBulletin Foren ist das ja zum Beíspiel so, dass die Ergebnisse der Suche gespeichert werden und auf diesen Daten dann zurückgegriffen werden kann.

                  Der Link zur mySQL Docu hat mir auf jeden Fall schonmal geholfen.

                  Kommentar


                  • #10
                    cache als technologie wird natürlich eingesetzt, um die leistungsfähigkeit zu steigern. aber um eine suche zum ersten mal auszuführen, muss die gesamte datenbank mit den einträgen durchsucht werden.

                    Kommentar


                    • #11
                      Ja das ist ja klar. Worum es mir im Prinzip geht ist eine simple und trotzdem effektivere Cache Funktion. Hätte ich vielleicht genauer sagen sollen.

                      Kommentar


                      • #12
                        Die Volltext-Suche von MySQL reicht für jede durchschnittliche Anwendung aus.
                        Für große Suchen, eignet sich dann php irgendwann sowieso nicht mehr, da greift man besser auf Lucene (http://lucene.apache.org) zurück, aber da das wieder Java ist, wirst du damit wohl überfordert sein; also Volltext-Suche und gut ist

                        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                        Wie man Fragen richtig stellt

                        Kommentar


                        • #13
                          Ok dann wird es so gemacht. Mit der Boolean Volltextsuche habe ich auch genau das gefunden was ich suche.

                          Kommentar

                          Lädt...
                          X