Vereinfachung von Abfrage

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

  • Vereinfachung von Abfrage

    Hallo,

    also ich habe folgendes Problem.
    Ich möchte folgende Ausgabe, das in einer Tabelle die jeweiligen Stunden in einem Wert X wiedergegeben wird. Ich habe dazu folgende Lösung erarbeitet, allerdings leidet dies unter erheblichen Performanceeinbußen in Mysql, daher suche ich eine Lösung die Abfrage kleiner zu machen. Ich weiß, das die For-Schleife das Problem ist, aber mit ist keine andere Lösung eingefallen. Hat jemand eine andere Lösung?? Gibt es eine Möglichkeit, diese For-Schleife in die MySQL Abfrage rein zu legen und dann als eine Abfrage auszugeben?

    Hier die Tabellenstruktur

    id | timestamp
    -----------------


    Hier mein Code
    PHP-Code:
    $tmp4"";
    for(
    $b=0;$b<=23;$b++){

    $sql->db_Select_gen(
    "SELECT  *
        FROM (
                SELECT COUNT(*) AS stunde
                FROM Tabelle1
                WHERE Tabelle1.id = '
    $_GET[id]'
                AND Tabelle1.timestamp BETWEEN '"
    .sprintf("%02s",$b).":00:00' AND '".sprintf("%02s",$b).":59:59'
             )
    "
    );
    $row $sql->db_Fetch(MYSQL_ASSOC);

    $tmp4[] = $row[stunde1];


  • #2
    Hallo,

    erstmal ist das äußere Select komplett überflüssig und verlangsamt selbst schon die Abfrage. Warum nimmst du nicht nur das innere Select?

    Zu der Schleife: Kommst du nicht besser, wenn du einfach nach der Zeit sortierst und alles abrufst, anstatt jede Stunde einzeln abzufragen. Einen Gruppenwechsel (Google-Stichwort) kannst du ja später immer noch durchführen, um nach den Stunden zu gruppieren.

    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
      ja, das Äußere Select habe ich vergessen weg zu machen, da ich mit Subselects arbeite :-) denk dir es einfach weg.

      Kannst du mir an einem vereinfachten Beispiel erklären, wie du das meinst?

      Kommentar


      • #4
        Zitat von Nirus2000 Beitrag anzeigen
        ja, das Äußere Select habe ich vergessen weg zu machen, da ich mit Subselects arbeite :-)
        Und warum arbeitest du mit Subselects? Fast jede Art von Subselect lässt sich in eine Abfrage ohne Subselects umschreiben und wird dadurch viel schneller.

        Zum Thema Gruppenwechsel: Sieh einfach mal in meinem Blog nach oder benutz Google (wie schon gesagt).

        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

        Lädt...
        X