Ankündigung

Einklappen
Keine Ankündigung bisher.

mysql_result vs mysql_fetch_assoc - Performance

Einklappen

Neue Werbung 2019

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

  • mysql_result vs mysql_fetch_assoc - Performance

    Hi,

    hat von euch jemand schon die beiden auf Performance hin getestet?
    Es geht um genau ein Feld den ich aus der DB brauche.

    was die Geschwindigkeit von fetch_Assoc, array und objekt angeht kennt ihr sicher schon das hier

    assoc ist natürlich gegenüber row schöner, da nehm ich auch den performanceverlust hin aber wie siehts mit mysql_result($result,0) aus?


    übrigens was ist den konkret der unterschied zwischen mysql_unbuffered_query und dem buffered_query?


    grüße
    felix

  • #2
    assoc ist natürlich gegenüber row schöner, da nehm ich auch den performanceverlust hin aber wie siehts mit mysql_result($result,0) aus?
    Sorry taurus, aber das interessiert wirklich keinen. mysql_result ist umständlich und benutzt einen Ressourcencall pro Datum. Ich wüßte nicht wer das benutzt.
    Im Übrigen beantwortet wie sehr oft das Handbuch Deine Frage.
    When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than mysql_result().
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      oh nikosch, ja das war mehr offtopic, man man

      ich meinte ein feld und nicht ein datensatz(also eine komplette zeile...)
      wenn mich mein englisch nicht täuscht ist da ja von mehreren feldern die rede...

      ich hatte vor einiger zeit mal gelesen dass es beim auslesen von nur einem feld besser ist das per fetch_assoc o.ä. zu machen und nicht per mysql_result... frage mich nur warum ich das noch im code stehen hab

      Kommentar


      • #4
        frage mich nur warum ich das noch im code stehen hab
        das steht doch sicher dort !
        oder hast Du das kommentieren vergessen ?
        Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

        Kommentar


        • #5
          hö? das mysql_result hatte ich noch im code ^^..

          aber zurück zum thema..

          Kommentar


          • #6
            hö? das mysql_result hatte ich noch im code
            ja - aber offensichtlich ohne nen Kommentar dazu zu schreiben
            warum Du in diesem Fall mysql_result verwendest.

            Ich denk daß solche Sachen die Performance allenfalls im Millisekundenbereich beeinflussen.

            Jetzt weiß ich auch warum Dein Code nicht kommentiert ist: wolltest Parsezeit sparen ?
            Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

            Kommentar


            • #7
              code? welcher code? hatte hier ja gar nix gepostet ^^ nein is natürlich schon kommentiert an stellen bei denen es sein muss...

              bei einem feld nutze ich jetzt fetch_assoc, ist mir sympathischer. ob das jetzt schneller als mysql_result ist weiß ich nicht ^^


              und wer weiß was ein der unterschied zw. mysql_unbuffered_query und buffered_query ist?

              Kommentar


              • #8
                Zitat von taurus Beitrag anzeigen
                und wer weiß was ein der unterschied zw. mysql_unbuffered_query und buffered_query ist?
                Du kannst Fragen stellen

                Bei einer gepufferten Abfrage wartet der Client auf das komplette Resultset bevor er weiterarbeitet.
                Eine ungepufferte Abfrage kehrt nach der Kompilierung zurück und beginnt die Ausführung, es werden aber noch keine Results zurückgeliefert. Der Client wartet nur, wenn er nach einer Zeile gefragt wird, die noch nicht im Speicher des Clients liegt und mysql noch nicht mit der Abfrage fertig ist.

                Praktisch heisst das: In ungepufferten Queries sind bestimmte Informationen nicht vorhanden (z.B. Anzahl der Zeilen) und man kann nicht darin vor- oder zurückspringen. Allerdings sind die Speicheranforderungen geringer, da keine Resultset direkt geliefert werden - sprich, für sehr große zu erwartende Resultsets kann eine ungepufferte Query Sinn machen (abgesehen vom Zeitvorteil)
                Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                Kommentar


                • #9
                  frage mich nur warum ich das noch im code stehen hab
                  code? welcher code?
                  Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

                  Kommentar

                  Lädt...
                  X