Statusbar während großen MySQL Abfragen

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

  • Statusbar während großen MySQL Abfragen

    Ich suche nach einer Möglichkeit den Benutzer zu informieren wie der Status der MySQL Abfrage ist.

    Diese dauert ca. 30 Minuten da mehrere tausend Datensätze miteinander verglichen werden müssen.

    Ich kann bereits vor der Anfrage sagen, wieviele Datensätze durchgangen werden müssen doch leider wird die Seite während der Aktion nicht aktualisiert.

    Meine Idee war einfach alle 500 Datensätze Bereich X mit einer Grafik zu füllen, dass bei 50.000 Datensätzen die "Leiste" voll ist.
    Leider geht das nicht, da die Seite bis zum Ende der Abfrage stehen bleibt.
    Habt ihr mir irgend einen Lösungsansatz wie ich dies umgehen kann?
    Einpacken & Mitnehmen - SEO und CMS/Shop-Lösungen

  • #2
    Hallo,

    mehrere Tausend Datensätze zu vergleichen, dauert in der Regel den Bruchteil ein Augenzwinkerns. 30 Sekunden sind ein Hinweis darauf, dass irgend etwas falsch geplant oder umgesetzt wurde. Zur falschen Planung zähle ich z. B. umständliche Stringvergleiche aufgrund fehlender oder unzureichender Normalisierung, zur falschen Umsetzung z. B. verschachtelte Subselects und fehlende Indizes.

    Kannst du mit Sicherheit sagen, dass deine Datenbank mindestens bis NF3 normalisiert ist, dass du Indizes auf den Spalten hast, nach denen häufig gesucht und sortiert wird, dass du keine unkorrelierten Subselects verwendest, sondern Joins und nur in ganz seltenen Fällen mal ein korreliertes Subselect und dass du – falls du mit Volltextsuche arbeitest – keine LIKE-Vergleiche machst, sondern FULLTEXT-Indizes benutzt?

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Es ist schon soweit es geht optimiert, aber das Problem ist, dass der Server recht lahm ist und schon extrem lang braucht um die XML Datei in eine DB zu legen.
      Als nächster Schritt wird dann die "import" DB mit den eigentlichen Produktdb verglichen und die einzelnen Lieferanten in die jeweilige DB gepackt.
      Und das bei ca. 200.000 Artikeln ...

      Alles in allem ist er ca. 5 Minuten beschäftigt.
      Einpacken & Mitnehmen - SEO und CMS/Shop-Lösungen

      Kommentar


      • #4
        du kannst es mit flush / ob_flush probieren (also irgendwas ausgeben alle x Datensätze und dann mit flush auch wirklich an den Browser senden)

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

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

        Kommentar

        Lädt...
        X