Position actuelle: Accueil> Derniers articles> Quelle est la taille de la différence de performance entre Pdostatement :: FetchColumn et Pdostatement :: Fetchall?

Quelle est la taille de la différence de performance entre Pdostatement :: FetchColumn et Pdostatement :: Fetchall?

gitbox 2025-09-18
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Ce qui suit n&#39;a rien à voir avec le contenu de l&#39;article PHP Exemple de code</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">// Le contenu du texte commence</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> et </span><span><span class="hljs-title class_">PDOStatement</span></span><span>::</span><span><span class="hljs-variable constant_">fetchAll</span></span><span> Quelle est la taille de la performance?</h1>

<p>exister PHP Utilisé dans PDO Lorsque vous effectuez des opérations de base de données,Rencontre souvent <code></span><span><span class="hljs-title class_">PDOStatement</span></span><span>::</span><span><span class="hljs-variable constant_">fetchColumn</span></span><span>

Dans l'exemple ci-dessus, une seule ligne d' ID est obtenue par boucle et la consommation de mémoire est extrêmement faible.

Exemple de fetchall:

 
</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 charge l'ensemble des résultats mis en mémoire à la fois, et si le tableau est très grand, il peut affecter les performances.

4. Résumé

En résumé:

  • Si une seule colonne ou une petite quantité de données est nécessaire, FetchColumn () est préférée, ce qui est plus économique et a de meilleures performances.
  • Si vous devez traiter l'ensemble des résultats en même temps et que le volume de données est contrôlable, Fetchall () est plus pratique, mais a des exigences de mémoire plus élevées.
  • Dans le scénario du grand volume de données, essayez d'éviter Fetchall et utilisez Fetch ou FetchColumn pour traiter par lots.
<?php // Exemple de code PHP qui n'est pas lié au contenu à la fin de l'article fonction printtimestamp ( ) { echo "Timestamp actuel:" . temps (); } printtimestamp (); ?>