Php Abfrage Geschwindigkeit reduzieren

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

  • Php Abfrage Geschwindigkeit reduzieren

    Hallo und Guten Morgen, an alle...

    Ich habe folgende Frage, ich habe mir ein Script gebaut, was meine WebSeite nach bestimmten Daten durchsucht, nun habe ich aber festgestellt, dass die Abfrage ganz schön der Server belastet. Meine Frage, ist es Möglich die Abfrage ein wenig in der Geschwindigkeit zu reduzieren, wenn ja, wie kann ich das erreichen, bin über jede Antwort froh...

    Gruß und Dank aus Berlin
    Robert

  • #2
    ist es Möglich die Abfrage ein wenig in der Geschwindigkeit zu reduzieren
    ja bzw. nein.
    wie kann ich das erreichen
    indem du dir einzelne passagen deines scriptes heraussuchst, und versuchst, sie zu optimieren.

    mal ehrlich: was hast du als antwort erwartet? optimierung ist in fast allen fällen möglich, nur, wie sollen wir dir denn tips geben, wenn wir garnicht wissen, wie deine abfrage aussieht?
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Hallo, und vielen Dank,

      es ist so, dass dieses Script, die Suchfunktion meines Shop verwendet um von mir bestimmt Artikelnummern zu suchen und den Preis zu aktualisieren... Wenn ich nun aber das Script voll durchlaufen lasse, dann habe ich innerhalb kurzer Zeit mehr als 11.000 Abfragen hintereinander, und das ist ein wenig viel, für den Server...

      PHP-Code:
      $URL "http://www.xxx.de/shop/searchid=5558759";

      // Start der Auslese
      $Start 'Art.Nr.';
      $End "<td align=right><input type=text name=";

      // Öffnen der Seite
      $file fopen("$URL""r");

      // Lesen der Seite
      $r file_get_contents($URL);

      // Suchen, wonach gesucht werden soll

      $stuff eregi("$Start(.*)$End"$r$content);

      // Zeichen ersetzen
      $content[1] = str_replace("."""$content[1]);
      $content[1] = str_replace(",""."$content[1]);
      $content[1] = str_replace("&nbsp;EUR"""$content[1]);
      $content[1] = str_replace("&nbsp;"""$content[1]);
      $content[1] = str_replace("<br>"""$content[1]);
      $content[1] = str_replace("<td align=right>"""$content[1]);
      $content[1] = str_replace("</td>"""$content[1]);
      $content[1] = str_replace("/span>"""$content[1]);
      $content[1] = str_replace("<td>"""$content[1]);


      fclose($file);
      $stuff $content[1];

      // Werte Speichern
      $items explode("[LINES]",$stuff);

      $count "0";

      $rest substr($stuff18); 
      $rest1 substr($stuff1015); 

      $id $rest;
      $price $rest1;    
      $db_price $price 116 100
      So sieht nun meine Abfrage aus, vielleicht, kann man ja auch noch einer einen anderen Hilfreichen Tipp geben... Grundsätzlich, funktioniert alles eben nur ein wenig schnell....

      Gruß aus Berlin

      Kommentar


      • #4
        hmm,

        ich bin mir sicher, daß dieses vorhaben (was immer du in dem code da oben auch machst) viel besser zu realisieren ist. ohne dein system zu kennen, kann ich jedoch keine vorschläge machen.

        eins jedoch scheint mir sicher: dieses script geht einen völlig falschen weg. wie gesagt, ich kenne dein system nicht ... das script würde ich trotzdem auf dem schnellsten wege entsorgen.

        wenn du nur preise aktualisieren willst, warum greifst du nicht direkt auf die daten in der db (wo auch immer) zu?

        erzähl mal näheres zu deinem system.
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          Hallo und vielen Dank,

          Also folgendes, ich habe einen OSC Onlineshop und mein Partner in Frankfurt auch, nur dieser Vertreibt noch andere Produkte, wie ich.
          So, nun wollen Wir meine Seite nach den Artikelnummern, in seiner DB suchen und die Preise aktualisieren. Natürlich, könnte wir auch die DB abgleichen, aber wir wollen es so machen, denn ich denke, wenn dieses Script funktioniert, dann kann man damit auch noch andere tolle dinge realisieren, ich hoffe, das Hilft schon ein wenig weiter... Wir probieren das einfach nur... Aber warum, soll ich das Script wegschmeißen, wenn es doch bis her funktioniert???

          Gruß aus Berlin

          Kommentar


          • #6
            Original geschrieben von RobertRitschel
            ... Aber warum, soll ich das Script wegschmeißen, wenn es doch bis her funktioniert???
            Vielleicht weil es deiner Aussage nach zu langsam ist?
            Fährst du Schotterstraße, wo gleich daneben eine Autobahn ist?

            Original geschrieben von RobertRitschel
            ...aber wir wollen es so machen, denn ich denke, wenn dieses Script funktioniert, dann kann man damit auch noch andere tolle dinge realisieren...
            Welche Dinge?
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              Was für tolle Sachen kannst du denn machen die du mit der DB nicht machen kannst? Das meiste dort wird ja wohl aus der DB kommen.

              Daher: Nimm die DB und schmeiß das Zeuch da wie derHund gesagt hat weg.
              Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
              var_dump(), print_r(), debug_backtrace und echo.
              Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
              Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
              Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

              Kommentar


              • #8
                wenn das so funktioniert, dann kann man damit doch eine eigene kleine suchmaschiene für die eigene page erstellen oder liege ich da falsch. und das es zu langsam ist, habe ich nie gesagt!!!

                Desweiteren, würde ICH gerne diesen Weg gehen, ich weiß auch, das es schnell und klüger wäre, einfach die DB abzugleich aber eben diesen einfachen Weg, will ich nicht gehen.

                Vielleicht hat ja noch einer eine Idee, wie ich das etwas LANGSAMER machen kann, dass z.B. die ersten 10 Werte der Db genommen werden, dann die nächsten und so weiter...

                Gruß aus Berlin

                Kommentar


                • #9
                  Achso, du willst dass das ganze etwas verzögert ausgeführt wird, damit der Server Luft für andere Sachen hat?

                  Ist das dein ganzes Skript? oder gibts da ne Schleife oder so?

                  Um ein Script etwas zu bremsen:

                  http://de2.php.net/sleep

                  Wo man das am sinnvollsten einbaut, weiß ich aber nicht, dazu kenn ich dein Script zu wenig.
                  Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                  Schön - etwas Geschichte kann ja nicht schaden.
                  Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                  Kommentar


                  • #10
                    Vielen Dank, quetschi für deine Antwort.

                    Genau das, will ich machen, ich will das Scipt ein wenig Bremsen, mehr nicht... Ja, das Script läuft in einer schleife da ja immer wieder die Suche der anderen Seite mit einer neuen Artikelnummer gefüllt wird...

                    Ich hoffe, ich komme damit weiter, vielen Dank

                    Gruß aus Berlin

                    Kommentar


                    • #11
                      Vielleicht eher noch das hier:

                      http://de2.php.net/manual/de/function.usleep.php

                      Bei sleep(); kannst nur 1 Sekunde als niedrigsten Wert einstellen, dass würde für 60 Artikel bedeuten dass das Script schon mindestens eine Minute benötigt. Könnte dann ein Timeout-Problem ergeben. Mit usleep(); kannst Verzögerungen im Mikrosekundenbereich erwirken.
                      Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                      Schön - etwas Geschichte kann ja nicht schaden.
                      Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                      Kommentar


                      • #12
                        Hallo Quetschi, noch einmal vielen Dank, für die Antwort...

                        Jetzt suche ich noch eine Möglichkeit, folgendes zu machen. Ich möchte jede Zeile, die Bearbeitet worden ist, auf der Seite nach und nach ausgeben, so dass ich einen Überblick habe, was passiert... also jede Zeile, die gelistet worde ist, soll danch gleich in einer Tabelle gelistet werden, weißt du da auch noch ein Lösung für mich???

                        Gruß aus Berlin

                        Kommentar


                        • #13
                          *kopfkratz*

                          http://de2.php.net/echo

                          kennst aber schon? oder versteh ich da jetzt nicht ganz was du genau willst?
                          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                          Schön - etwas Geschichte kann ja nicht schaden.
                          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                          Kommentar


                          • #14
                            danke, ja das kenne ich...

                            ich meinte:

                            abfrage 1

                            ausgabe 1

                            abfrage 2

                            ausgabe 1
                            ausgabe 2

                            abfrage 3

                            ausgabe 1
                            ausgabe 2
                            ausgabe 3

                            usw... das immer die aktuelle abfrage, nach dem sie ausgeführt wurde gelistet wirde, verstehst, was ich meine???

                            Danke Robert

                            Kommentar


                            • #15
                              ich komm da nicht ganz mit.

                              Kannst mal für abfrage1 und ausgabe1 usw. konkrete Beispiele einsetzen?

                              Soll das ganze dann einfach auf dem Bildschirm erscheinen wenn das Script läuft?
                              Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                              Schön - etwas Geschichte kann ja nicht schaden.
                              Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                              Kommentar

                              Lädt...
                              X