12

mongo クラスの PHP ドキュメントには、代わりにカーソルを使用するiterator_to_array方が優れていると書かれています。

なんで?それによってどのようなメリット/柔軟性が得られますか?

4

1 に答える 1

20

を使用iterator_to_array()すると、ドライバーはすべての結果を一度にメモリにロードするため、簡単にメモリ不足になる可能性があります。これは、遅延読み込みを使用するカーソルには当てはまりません!

リンクされたドキュメントから直接:

<?php

$cursor = $collection->find();
var_dump(iterator_to_array($cursor));

?>

...

上記の例で$collection、50GB のコレクションであるとします。一度にすべてをメモリにロードしたくないのは確かです。これがカーソルの目的です。クライアントがコレクションに少しずつアクセスできるようにするためです。

于 2011-02-21T00:00:16.177 に答える