Zerko: Viele Datensätze (MySQL) verarbeiten

Mahlzeit...

Ich schreibe ein eigenes Frontend für eine Art "Auswertungstool", welcher mir z.B. Impressions (Seiteneinblendungen) verarbeitet.

Nun stehe ich vor dem Problem, dass es mit der Zeit eine enorme Menge an Datensätze ist, z.B. 20.000.000 Stück. Ich versuche nun den "count(*)" anhand der SeitenID zu lesen, was nicht möglich ist... da die Datenmenge zu groß ist.

Ich bräuchte ein paar Tipps wie man das optimieren könnte?! ...vielleicht gibt es da nützliche Scripte / Tools?!

Danke & Gruß,
Zerko

  1. Hallo Zerko,

    Nun stehe ich vor dem Problem, dass es mit der Zeit eine enorme Menge an Datensätze ist, z.B. 20.000.000 Stück. Ich versuche nun den "count(*)" anhand der SeitenID zu lesen, was nicht möglich ist... da die Datenmenge zu groß ist.

    20 Mio Datensätze sollten für eine Datenbank kein Problem sein. Auch wenn ein count(Spaltenname) im Statement vermutlich wesentlich schneller und besser ist, vor Allem wenn die Spalte indexiert ist.

    Welche Fehlermeldungen bekommst du, aus der du schließt, dass es an der Menge liegt?

    ciao
    romy

  2. Hello,

    Nun stehe ich vor dem Problem, dass es mit der Zeit eine enorme Menge an Datensätze ist, z.B. 20.000.000 Stück. Ich versuche nun den "count(*)" anhand der SeitenID zu lesen, was nicht möglich ist... da die Datenmenge zu groß ist.

    die Datenmenge ist zu groß?? Für wen? Die Tabelle kann ich mir nicht vorstellen, der Datentyp, na ja, dann steckt im Modell noch irgendwo ein Fehler. Von der Skriptlaufzeit? Nutze EXPLAIN um herauszufinden, ob irgendwo Optimierungspotenzial ist. Dein Skript? ändere dein Skript.

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Buy when there's blood running in the street and sell when everyone is pounding at your door, clawing to own your equities  --  Wisdom on Wallstreet
  3. Sorry... etwas falsch formuliert :)

    Als Fehlermeldung erhalte ich die "Execution Time ..." oder "Allowed Memory ...", d.h. selbst beim "count(*)" wird das Statement nicht fehlerfrei ausgeführt.

    Gruß,
    Zerko

    1. Hallo

      Als Fehlermeldung erhalte ich die "Execution Time ..." oder "Allowed Memory ...", d.h. selbst beim "count(*)" wird das Statement nicht fehlerfrei ausgeführt.

      ich nehme mal an du arbeitest mit PHP.

      dann schau mal in deinen php.ini Einstellungen nach.
      ;;;;;;;;;;;;;;;;;;;
      ; Resource Limits ;
      ;;;;;;;;;;;;;;;;;;;

      max_execution_time = 60     ; Maximum execution time of each script, in seconds

      oder ändere dein Script.

      viele Grüße
      hawk

    2. Hallo Zerko,

      Als Fehlermeldung erhalte ich die "Execution Time ..." oder "Allowed Memory ...", d.h. selbst beim "count(*)" wird das Statement nicht fehlerfrei ausgeführt.

      Warum musste es jetzt nochmal count(*) sein, statt count(spaltenname)?
      Durchsuchst du eine Tabelle oder mehrere? Wieviele Spalten müssen dabei durchsucht werden?

      Die Executiontime kann man in der php.ini hochsetzen, bzw. in der apache.conf. Aber sinnvoller ist hier wohl dein Stement zu optimieren.

      Was möchtest du genau rausbekommen aus welchen Daten?

      ciao
      romy

  4. Hi,

    ... count(*)

    Mit MyIsam als Engine gäbe es dieses Problem nicht.

    Schöne Grüße,
    Jonny 5