Aktueller Standort: Startseite> Neueste Artikel> Wie groß ist der Leistungsunterschied zwischen pdostatement :: fetchcolumn und pdostatement :: fetchall?

Wie groß ist der Leistungsunterschied zwischen pdostatement :: fetchcolumn und pdostatement :: fetchall?

gitbox 2025-09-18
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Das Folgende hat nichts mit dem Inhalt des Artikels zu tun PHP Codebeispiel</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">randomGreeting</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
    </span><span><span class="hljs-variable">$greetings</span></span><span> = [</span><span><span class="hljs-string">"Hello!"</span></span><span>, </span><span><span class="hljs-string">"Hi!"</span></span><span>, </span><span><span class="hljs-string">"Hey there!"</span></span><span>, </span><span><span class="hljs-string">"Greetings!"</span></span><span>];
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$greetings</span></span><span>[</span><span><span class="hljs-title function_ invoke__">array_rand</span></span><span>(</span><span><span class="hljs-variable">$greetings</span></span><span>)];
}

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">randomGreeting</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>

<hr>

</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Starten Sie den Inhalt des Textes</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>

<h1></span><span><span class="hljs-title class_">PDOStatement</span></span><span>::</span><span><span class="hljs-variable constant_">fetchColumn</span></span><span> Und </span><span><span class="hljs-title class_">PDOStatement</span></span><span>::</span><span><span class="hljs-variable constant_">fetchAll</span></span><span> Wie groß ist der Leistungsunterschied?</h1>

<p>existieren PHP Verwendet in PDO Bei der Durchführung von Datenbankvorgängen,Oft begegnen <code></span><span><span class="hljs-title class_">PDOStatement</span></span><span>::</span><span><span class="hljs-variable constant_">fetchColumn</span></span><span>

Im obigen Beispiel wird nur eine ID -Zeile pro Schleife erhalten, und der Speicherverbrauch ist extrem niedrig.

Fetchall -Beispiel:

 
</span><span><span class="hljs-variable">$stmt</span></span><span> = </span><span><span class="hljs-variable">$pdo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-string">"SELECT id, name FROM users"</span></span><span>);
</span><span><span class="hljs-variable">$rows</span></span><span> = </span><span><span class="hljs-variable">$stmt</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetchAll</span></span><span>(PDO::</span><span><span class="hljs-variable constant_">FETCH_ASSOC</span></span><span>);
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$rows</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$row</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'id'</span></span><span>] . </span><span><span class="hljs-string">' - '</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
}

Fetchall lädt das gesamte Ergebnis auf den Speicher gleichzeitig. Wenn die Tabelle sehr groß ist, kann dies die Leistung beeinflussen.

4. Zusammenfassung

Zusammenfassend:

  • Wenn nur eine einzelne Spalte oder eine kleine Datenmenge benötigt wird, wird FetchColumn () bevorzugt, was mehr Speichersparung ist und eine bessere Leistung hat.
  • Wenn Sie das gesamte Ergebnis gleichzeitig verarbeiten müssen und das Datenvolumen steuerbar ist, ist Fetchall () bequemer, hat jedoch höhere Speicheranforderungen.
  • Versuchen Sie im Szenario des großen Datenvolumens, Fetchall zu vermeiden und Fetch oder FetchColumn zu verwenden, um in Chargen zu verarbeiten.
<?php // Beispiel für PHP -Code, der nicht mit dem Inhalt am Ende des Artikels zusammenhängt Funktion Printimestamp ( ) { echo "Aktueller Zeitstempel:" . Zeit (); } printimestamp (); ?>