Blätterfunktion bei großes Datenmengen!

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

  • Blätterfunktion bei großes Datenmengen!

    Hallo,

    ich habe ein Problem mit der Blätterfunktion bei einer großen Anzahl von Einträgen in einer Datenbank - es ist einfach zu langsam! Es sind bestimmt weit mehr als 400.000 Datensätze die in einer Blätterfunktion untergebracht werden müssen!

    Kann mir da jemand ein gutes Tutorial nennen, oder weiß Rat?

    Das MySQL ganz effektiv mit LIMIT arbeiten kann ist nicht mein Problem, sondern das zählen aller Datensätze!

    Ich hab das Gefühl das das zählen aller Datensätze um später die Seitenanzahl zu errechnen die DB am meisten quält!

    Ich mach es mit

    Code:
    SELECT COUNT(id) FROM tabelle WHERE ...
    das Problem ist das ich hier eine Gruppierung mit unterbringen muss, also ein GROUP BY...und ich denk das ist der Grund warum sich die DB so qüalt und das Laden der Seite so lange dauert.

    Kennt jemand einen effektiveren Weg der ein schnelles Laden ermöglicht?

    Danke!

  • #2
    Weniger spekulieren und mal die Queries im PHPMyAdmin ausführen, Zeiten vergleichen. Explain ausführen und wieder vergleichen. Auch ohne deine Blätterquery sehen zu können, wird hier niemand eine Antwort abgeben können.

    Kommentar


    • #3
      Grade mal spaßeshalber ein COUNT(*) auf knapp 650.000 Datensätze gemacht:

      (430 insgesamt, die Abfrage dauerte 0.1642 sek.)
      Unterdurchscnittliche Hardware

      Hast du denn ordnetliche Indizes gesetzt?
      [FONT="Helvetica"]twitter.com/unset[/FONT]

      Shitstorm Podcast – Wöchentliches Auskotzen

      Kommentar


      • #4
        SELECT SQL_CALC_FOUND_ROWS ...

        ist für sowas eh besser

        Kommentar


        • #5
          Original geschrieben von Paranoia
          SELECT SQL_CALC_FOUND_ROWS ...

          ist für sowas eh besser
          Nein, nicht grundsätzlich.
          Es gibt Fälle wo diese Variante sogar schlechter ist und ein separater einzelner Query deutlich besser.
          http://www.mysqlperformanceblog.com/...lc_found_rows/


          Wenn der Query so kompliziert ist, vereinfache ihn halt. Schon mal DISTINCT probiert?
          Vielleicht kann man einen JOIN fallen lassen? Brauchst du überhaupt die genaue Anzahl? Ansonsten könnte man den Wert auch zwischen speichern.

          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