Alternativen für DB Statistiken

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

  • Alternativen für DB Statistiken

    Tag,

    ich habe eine Tabelle, von der ich bestimmte Statistiken auslesen möchte. Zum Beispiel höchste oder kleinste Werte von Spalten (eigentlich immer Zahlen). Bisher hab ich immer mit Arrays wie folgt gearbeitet.

    Query an Tabelle gesandt, über Schleife mit mysql_fetch_array und array_push die jeweiligen Elemente einem Array hinzugefügt, und das dann halt nach Wunsch sortiert. Zum Beispiel wenn man den höchsten Wert haben will halt sort($array); und dann das erste Arrayelement entfernt und zurückgegeben -> der höchste Wert. Etwa so

    PHP-Code:
    $datum    = array();
    $query3   "SELECT * FROM $tabelle";
    $ergebnis3mysql_query($query3);
    while(
    $datensatz3 mysql_fetch_array($ergebnis3))
    {
    array_push($datum$datensatz3[time]); }
     
    rsort ($datum);
    $letzter  array_shift($datum); 
    Macht sich ganz gut, solange man nicht mehr als 200 Einträge in der Tabelle stehen hat, Arrays können leider maximal nur 200 Elemente aufnehmen. Kennt ihr Alternativen wie ich solche Statistiken erfassen kann ohne mit begrenzten Arrays arbeiten zu müssen?

  • #2
    ich weiss zwar nicht woher du das hast, dass array nur 200 elemente umfassen können, aber hier die datenbank bassierten lösungen:

    select max(time)as letztereintrag from $tabelle

    select min(time) as erstereintrag from $tabelle

    und dann haltnachm fetchen heis die spalte $datensatz3['letztereintrag'] oder jenachdem erstereintrag...

    select * from tabelle order by time asc limit 5 // letzten 5 einträge
    meine Projekte bestaunen: http://www.kleiza.de

    Kommentar


    • #3
      campus hat recht.

      ausserdem ist deine methode viel zu umständlich, wenn es wirklich nur um die ermittlung von maximal- oder minimalwerten geht.

      du holst dir da erstmal das feld aus allen datensätzen, um dann anschliessend das array zu sortieren - absolut unperformant!

      da müssen ja erstmal die kompletten daten vom mysql-server an den webserver übergeben werden, während mit campus' methode nur der eine betreffende datensatz übergeben werden muss.

      was immer man an aufgaben den mysql-server selber machen lassen kann, sollte man diesen auch tun lassen!

      die mysql-funktionen sind dafür optimiert worden, da macht es keinen sinn so viel last zu erzeugen indem man sich erst die kompletten daten holt und diese nachträglich auswertet...
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar

      Lädt...
      X