0

データベースのフェッチを管理するアプリのクラスがあります。クラスで結果セット ( PDOStatement ) を操作してそこから html をエコー出力する代わりに、次を使用して結果セットをページに返したいと思います。fetchAll()

return $stmt->fetchAll(PDO::FETCH_ASSOC);

編集:$stmt私の知る限りPDOStatement、単一の接続から複数の既存のオブジェクトが存在するのは良くないため、戻りたくありません。リスクを回避するために、これらのオブジェクトをクラス内で管理したいと考えています。間違っている場合は修正してください。

配列が 100k 行、おそらく 10k-50k を超えないと仮定すると、これを行うべきではないパフォーマンス上の理由 (またはまったく) はありますか? 私はそれがかなり基本的であることを知っていますが、これを処理するための好ましい方法は何ですか?

クラスメソッドで直接操作するのではなく、これを行うと、メモリへの影響に違いはありますか? 大丈夫だと思いますが、SOから聞きたかったです。

4

1 に答える 1

0

メモリの問題が存在する場合、何をしているかに関係なく、 fetch all を呼び出すことはあなたの友人ではありません...ループで $stmt->fetch を呼び出すだけのほうがよいでしょう。PHPは関数内で参照処理によって配列を渡すため、別のものに延期するのとほぼ同じメモリとパフォーマンスプロファイルを持つ必要があります。

于 2013-05-09T16:07:08.863 に答える