count oder num_rows ?

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

  • count oder num_rows ?

    ich wüsste mal gerne, was schneller ist ...

    count(id) oder mysql_num_rows ?

    danke

  • #2
    kommt ganz darauf an, was du anzeigen willst.

    Bei einer Tabelle mit 1000 Einträgen wäre es wohl nicht so gut,
    erst ein select zu machen, dann ein mysql_num_rows, um dann
    Datensatz 90-100 anzuzeigen.

    Bei Tabellen wo sowie alle Zeilen ausgelesen werden, kannste
    dir das extra count(*) sparen.
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      Wenn COUNT() nicht in Verbindung mit WHERE oder LIKE verwendet wird, also zur Ermittlung der Gesamtzahl von Spaltenwerten, dann ist COUNT() darauf optimiert, sehr schnell ein Ergebnis zurückzugeben.

      SELECT COUNT(spalte1) FROM table1


      taratus

      Kommentar


      • #4
        SELECT date from tabel where date='28.09.2002'

        es gibt mehrere zeilen, die das date anthalten, so ca. 1000.

        ich nehme mal an, das count hier besser wäre ?

        Kommentar


        • #5
          wenn du alle 1000 Zeilen haben willst, um sie anzuzeigen, ist das num_rows besser, da du eine SQL-Abfrage sparst.

          willst du aber nur ein paar dieser Zeilen anzeigen,
          benutze eine limit Abfrage und mach ein extra count(*)
          TBT

          Die zwei wichtigsten Regeln für eine berufliche Karriere:
          1. Verrate niemals alles was du weißt!


          PHP 2 AllPatrizier II Browsergame

          Kommentar


          • #6
            es kommt wirklich darauf an, was du weiter mit dem daten machts,
            wenn du sagen wir mal nur schlicht die anzahl der spalten für dieses datums wissen willst, dann würde ich count(*) ...where..
            nehmen, möchstes du aber sagen wir mal jetzt noch alle daten ausgeben, würde ich die anzahl mit num_rows errechnen, weil du dir ja eine sql anweisung dann sparst.
            meine Projekte bestaunen: http://www.kleiza.de

            Kommentar


            • #7
              Eine hochinteressante Diskussion.
              Ich verwette beinahe meinen Arsch darauf, dass mysql_num_rows immer schneller ist als count, weil es nämlich sozusagen als Nebenprodukt eines jeden Selects anfällt und dessen Abfrage eine reine "Formalität" ist.
              mfg

              Kommentar


              • #8
                ich als sozusagen nobb

                kann da noch net viel sagen, aber ist es net so, das wenn ich das mit count mache ja mehr daten gelsen werden müssen, als mit num_rows ?

                denn count selektiert ja alle daten, die ich angebe wenn ich z.b. count(*) mache muss er ja die ganze tabelle und spalten counten ? oder ?

                und wenn ich num mache, dann ist demm ja nicht so ? oder ?

                Kommentar


                • #9
                  die Selection der Daten erfolgt aber nur in der Datenbank, und dafür ist ein RDMS ja nunmal da und optimiert.
                  Das langsamste ist da wohl der Transfer von der Datenbank zum PHP Code.
                  Außerdem zählt bei vielen Hostern (Puretec auch !) der Transfer zwischen Datenbankserver und Webserver mit zum Trafficvolumen.
                  Da macht es besonders Spass, jedesmal 100-150KB aus der Datenbank zu lesen, um dann in einer super optimierten HTML-Seite von 4KB ein "es sind 6785 Datensätze in der DB" auszugeben. So bekommt man sein Monats Traffic Limit auch voll


                  Mach dochmal auf eine 1000 Zeilen Tabelle ein

                  select * from und danach ein myqsl_num_rows.

                  und vergleiche dies mit einem count(*)

                  danach das ganze nochmal für

                  select * from ... limit 0,10
                  TBT

                  Die zwei wichtigsten Regeln für eine berufliche Karriere:
                  1. Verrate niemals alles was du weißt!


                  PHP 2 AllPatrizier II Browsergame

                  Kommentar


                  • #10
                    Original geschrieben von CHnuschti
                    Eine hochinteressante Diskussion.
                    Ich verwette beinahe meinen Arsch darauf, dass mysql_num_rows immer schneller ist als count, weil es nämlich sozusagen als Nebenprodukt eines jeden Selects anfällt und dessen Abfrage eine reine "Formalität" ist.
                    mfg
                    ja, interessant, also ich verwette mein arsch auf das gegenteil, weil ohne where muss mysql bestimmt nur irgendwo einwert auslesen, der beim jeden insert incrementiert wird !
                    meine Projekte bestaunen: http://www.kleiza.de

                    Kommentar

                    Lädt...
                    X