Suchfunktion mit PHP und SQL

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

  • #16
    Dein gepostete Script wo du den Fehler

    mysql_fetch_array()
    bekommen hast funzt bei mir unter E_STRICT einwandfrei, auch wenn kein Treffer erzielt wurde (PHP 5.2.10).

    Allerdings - Freude wirst du daran ncht haben, weil damit nur eine exakte Schreibweise gefunden wird.

    Kommentar


    • #17
      joa nit wirklich, habt ihr denn ne bessere tutorial oder scrypt ?

      Kommentar


      • #18
        Siehe meinen Hinweis zur Mysql Volltextsuche, da gibt es auch Beispiele.

        Kommentar


        • #19
          Zitat von piratos Beitrag anzeigen
          Siehe meinen Hinweis zur Mysql Volltextsuche, da gibt es auch Beispiele.
          Ich habe meinen letzten Erfahrungen damit in der Version 4.1 gemacht. Da war die Volltextsuche bei kleineren Datenmengen eine Katastrophe. Und damit meine ich meinen eigenen Auftritt mit über 400 Seiten. Ich habe mir dann eine eigene geschrieben. Gut die will ich seit zwei Jahren umprogrammieren, komme aber nicht dazu.

          Peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #20
            Zitat von Kropff Beitrag anzeigen
            Ich habe meinen letzten Erfahrungen damit in der Version 4.1 gemacht. Da war die Volltextsuche bei kleineren Datenmengen eine Katastrophe.
            Peter
            Auf meiner Haupseite habe ich auch keine 400 Seiten, habe das aber mit generierten Texten probiert (5000 Seiten) - einwandfrei und sehr schnell.

            Kannst ja mal bei PowerCMS eines der sparsamsten und schnellsten CMS probieren:

            Z.B. Suche nach PowerCMS

            Suchzeit: 0.0005500316619873 Sekunden

            Da wird in mindestens 5 Tabellen gesucht, die Zeit ist die vom Start der Suche bis zur Übergabe der Ergebnisse an Smarty.

            PowerCMS liegt zudem auf einem shared Webserver mit rund 100 Domains und der ist nicht der allerschnellste.

            Kommentar


            • #21
              Zitat von piratos Beitrag anzeigen
              Auf meiner Haupseite habe ich auch keine 400 Seiten, habe das aber mit generierten Texten probiert (5000 Seiten)
              Das ist imho das Problem bei Fulltext. 5000 Seiten sind eine ganze Menge, 400 nicht. Und wenn bei Ersterem das Ergebnis supi und bei Letzterem sch***e ist, so spricht das bei kleineren Auftritte eindeutig dagegen.

              Peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Kommentar


              • #22
                Das kann ich so nicht bestätigen, denn ich kenne natürlich auch kleine Websites die mit meiner CMS erstellt sind die kaum über 20 .. 40 Seiten kommen.

                Hier mal eine Zeit aus einem Web mit gerade mal 19 Seiten:

                Suchzeit: 0.0048599243164062 Sekunde

                Das ist doch völlig Ok und wenn man weiss, das davon noch ein Großteil für die vorbereitende Aufbereitung (wegen Darstellung) drauf geht, kann man wirklich nicht meckern.

                Selbst bei Kleinstwebs mit 7 Seiten liegen die Zeiten noch im Bereich 0.02 .. 0.03 , was aber auch zeigt das da die Volltextsuche bei sehr kleinen Webs deutlich langsamer ist, als bei größeren Webs, aber da kann man sich fragen ob man eine Suche benötigt.

                Mag sein das sich das unter alten 4 er Versionen von Mysql anders verhalten hat.

                Jedenfalls sind meine aktuellen Erfahrungen hervorragend und kann daher aus dem Grunde sie nur empfehlen.

                Vielleicht lohnt es sich mal für dich das für deine Sachen erneut zu probieren.

                Kommentar


                • #23
                  Suchzeit: 0.0048599243164062 Sekunde
                  Entspricht das bei dir der Ausführungszeit der Query oder was ist das für ein Zeitwert? Wie sieht dieser Wert für 10000 Einträgen mit Fulltext-Spalte aus?

                  Kommentar


                  • #24
                    Zitat von PHP-Desaster Beitrag anzeigen
                    Entspricht das bei dir der Ausführungszeit der Query oder was ist das für ein Zeitwert? Wie sieht dieser Wert für 10000 Einträgen mit Fulltext-Spalte aus?
                    Das ist die Zeit gemessen vor dem Start der Suche und beinhaltet

                    die Abfragen (in der Regel 5 Tabellen) selbst - es sind tatsächlich aus Steuerungsgründen 3 Abfragen.
                    die interne Aufbereitung der Ergebnisse (kostet mehr Zeit als die Abfrage selbst)
                    bis zur Übergabe des aufbereiteten Ergebnisses an die Templateengine (in dem Fall Smarty).

                    10.000 habe ich nicht getestet.

                    Aber wie man hier aus dem Teil des Thread entnehmen kann, ist die Volltextsuche tatsächlich bei mehr Einträgen sehr viel schneller als bei wenigen.

                    Wo da die Grenzen liegen wo die Zeiten auch bei vielen Einträgen in Richtung langsamer kipppen hängt sicher von den individuellen Inhalten ab.

                    Titel wie z.B. die Forensoftware SMF verwenden ebenfalls die Volltextsuche.
                    Wer z.B. mal auf Home of SMF: Free PHP and MySQL forum software in das Forum geht kann das da mal mit vielen Einträgen im wesentlichen testen, auch wenn die ein paar Dinge unterdrückt haben. Die hatten da eben 2,049,252 Einträge und das ist sicher nicht wenig.

                    Kommentar


                    • #25
                      Wenn du 4ms für die Auslieferung einer kompletten Seite benötigst frage ich mich, wieso bei mir der Aufbau zur Datenbank schon gute 10ms dauert... Tut mir leid aber diese Zeit kaufe ich dir nicht ab, jedenfalls nicht für Abfrage, Abholen der Ergebnisse und Generierung der Ausgabe, oder was hast du da für Hardware hinterstecken?

                      Kommentar


                      • #26
                        Ich habe keine Ahnung was du gesehen haben willst

                        1. Aufruf suche nach PowerCMS

                        Suchzeit: 0.050384044647217 Sekunden
                        Gesamtzeit :0.66613411903381

                        2. Aufruf gleiche Suche

                        Suchzeit: 0.00054407119750977 Sekunden
                        Gesamtzeit:0.10807991027832

                        Suche nach TPLE

                        1.Aufruf
                        Suchzeit: 0.022470951080322 Sekunden
                        Gesamtzeit:0.10119104385376

                        2. Aufruf

                        Suchzeit: 0.00079703330993652 Sekunden
                        Gesamtzeit:0.080622911453247-

                        Suche nach Templ*

                        1. Aufruf

                        Suchzeit: 0.028117179870605 Sekunden
                        Gesamtzeit:0.14034986495972

                        2. Aufruf

                        Suchzeit: 0.00087594985961914 Sekunden
                        Gesamtzeit:0.081965923309326

                        Könnte ich endlos so weiter führen.


                        Und wenn du dir mal die Mühe machen würdest und dort z.B. nach dem Begriff Backup suchen würdest
                        dann kannst du untern sehen:

                        Seite erstellt in 0.209 Sekunden mit 14 Abfragen.

                        Das ist zwar nicht die Suchzeit aber die Gesamzteit bei einer Suche aus über 2 Mio Beiträgen.

                        Du kannst die Zeiten selbst bei mir vergleichen, Suchzeit wird direkt ausgegeben, ansonsten Quelltext anzeigen und ganzn unten nachsehen.

                        Die Zeiten werden immer schwanken, je nach Serverlast.

                        Anderes Beispiel Abfrage über PHPMyAdmin aus einer weltweiten Postleitzahlentabelle mit über 2,8 Millionen Einträgen:

                        SELECT DISTINCT ort,plz,lon,lat FROM cms_geodb_plz WHERE MATCH (ort) AGAINST ('ham*' IN BOOLEAN MODE) GROUP BY plz ORDER BY plz LIMIT 0,100

                        Die Abfrage dauerte 0.0874 sek und das obwohl PHPMyaDmin nicht der schnellste ist.

                        Also immer schön vorsichtig bei einer Beurteilung.
                        Vorschnelle Beurteilungen hauen einem so manche schönen Möglichkeiten kaputt weil man dann eine Option völlig ohne Grund in den Eimer wirft.

                        Kommentar


                        • #27
                          Zitat von PHP-Desaster Beitrag anzeigen
                          Wenn du 4ms für die Auslieferung einer kompletten Seite benötigst frage ich mich, wieso bei mir der Aufbau zur Datenbank schon gute 10ms dauert... Tut mir leid aber diese Zeit kaufe ich dir nicht ab, jedenfalls nicht für Abfrage, Abholen der Ergebnisse und Generierung der Ausgabe, oder was hast du da für Hardware hinterstecken?
                          PowerCMS verwendet einen normalen shared Webserver , allerdings sehr guter Qualität, der von Neue Medien Muennich GmbH bedient wird.
                          Es sind ca. 100 Domains auf dem Server.
                          Was die konkrete Hardware betrifft - keine Ahnung.

                          Was den Test PLZ betrifft ist es ein lokaler Webserver mit einem AMD Phenom X4 2.6 Ghz auf Opensuse 11.1 64 Bit.

                          Bei 10 ms Sekunden Pingzeit für eine Mysqlverbindung würde ich den Hoster mal eine knallen, wenn der das nicht besser kann wechseln.
                          Du vergisst möglicherweise, das es die Suchzeit ist, die Verbindung existiert da schon, da Templates und Inhalte aus der DB kommen.

                          Kommentar


                          • #28
                            Zitat von piratos Beitrag anzeigen
                            Suchzeit: 0.050384044647217 Sekunden
                            Gesamtzeit :0.66613411903381
                            Alles klar, solche Zeiten kommen mir schon bekannter vor. Dann will ich nichts gesagt haben

                            Kommentar


                            • #29
                              Die normalen Zeitwerte liegen alle in dem Bereich bei einer Suche:

                              Suchzeit: 0.021201133728027 Sekunden
                              Gesamtzeit:0.10258007049561

                              Deine 0.01 Sekunden für eine Mysql Anbindung sind zu lang.

                              Die normalen Zeiten ohne Suche liegen bei uns bei

                              Gesamtzeit:0.07 .. 0.08, können aber auch mal 0.04 sein, je nach Serverlast.

                              In der Seitenbetriebsart Superache ohne Suche liegen die Werte bei 0.00080704689025879 und höher.

                              Auf exklusiven und technisch sehr guten Webservern aber liegen die Komplettzeiten bei einer Suche im Schnitt unter 0,02.

                              Eine normale Seite liegt da ohne Suche bei unter 0,009 und in der Betriebsart Supercache wurden schon Werte unterhalb
                              0.0003 gemeldet.

                              Da kann man deutlich erkennen, wie sich ein solcher Webserver auswirken kann.

                              In der Startzeit auf dem Server, als da nur um die 10 Domains drauf waren, war es noch eine ganz andere Leistung die wir nutzen konnten.

                              Bei shared Webservern besteht zudem immer das Problem, das man keinerlei Ahnung und Einfluss drauf hat, wie die Mitbewohner des Servers ihre Anwendungen nutzen und welche Last daraus ensteht.

                              Kommentar

                              Lädt...
                              X