kostenloser Webspace werbefrei: lima-city


mysql select count()

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    webguide

    webguide hat kostenlosen Webspace.

    Hallo

    macht es einen (Performance) Unterschied,
    ob ich COUNT auf (*) Alles oder auf eine bestimmtes Feld ('ID') anwende ?

    a)
    $sql = "SELECT COUNT(*) as anzahl FROM meinetabelle"; 
    
    $result = mysql_query($sql); 
    $resdata = mysql_fetch_assoc($result); 
    echo "<br />Gesamt: ".$resdata['anzahl']."\n";


    b)
    $sql = "SELECT COUNT('ID') as anzahl FROM meinetabelle"; 
    
    $result = mysql_query($sql); 
    $resdata = mysql_fetch_assoc($result); 
    echo "<br />Gesamt: ".$resdata['anzahl']."\n";


    oder ist es egal ob COUNT(*) oder COUNT('ID') ?

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Deine 2. Version wird nicht funktionieren ;-)
    Du musst das wenn schon so schreiben:
    SELECT COUNT(ID) as anzahl FROM meinetabelle
    Auch möglich wäre das:
    SELECT COUNT(`ID`) as anzahl FROM meinetabelle
    Aber einfache
    '
    stehen für etwas ganz anderes und du würdest vermutlich einen Fehler bekommen…

    Zur Performance: teste es doch einfach aus.
  4. Autor dieses Themas

    webguide

    webguide hat kostenlosen Webspace.

    hm,, ich habs mit den einfachen
    '
    gemacht, und es hat funktioniert, mit Ergebnis
    aber ok, dann halt ohne Anführungszeichen, einfach
    COUNT(ID)


    ich habe beides mal auf Script-Laufzeit getestet ... so gut wie kein Unterschied,
    beide Varianten brauchen zwischen 0.0010 und 0.0020 Sekunden, quasi nichts.

    allerdings habe ich auch "nur" ca. 2500 Zeilen in der Tabelle
    .... also es wird wohl egal sein, ob COUNT(ID) oder COUNT(*)

    zum Performance testen:
    wie ich (RAM) Speicher-Verbrauch messen kann, weiss ich nicht,
    mit memory_get_peak_usage() oder Differenz von memory_get_usage() von Anfang und Ende ?

    memory_get_peak_usage() ist am Anfang und am Ende gleich
    und ein deutlich höherer Wert als memory_get_usage() am Ende?!

    oder ganz anders ? ... und kann man auch CPU-Nutzung per PHP messen ?
  5. Also, wenn ich mich recht entsinne, wird bei jedem Query in phpMyAdmin ausgegeben, wie lang er gebraucht hat. Ich bin mir nicht 100% sicher ob das die exakte Rechenzeit ist, aber einen Versuch ist es wert.
    Einfach über phpMyAdmin -> Query was probieren.
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!