メモリ効率の高いクエリのための MySQLDB SScursor の効果的な利用
大量の結果セットを扱うと、メモリ消費の問題が発生する可能性があります。 MySQLDB は、メモリ使用率を最適化することでこの問題に対処するための SScursor クラスを提供します。効率的なデータベース クエリには、その使用法を理解することが重要です。
メモリ使用量の比較
ベース カーソルまたは SScursor で fetchall() 操作を実行すると、メモリ使用量に異なる影響が生じます。 。ベース カーソルを使用すると、すべての結果がメモリにロードされるため、大量のリソースが消費される可能性があります。一方、SScursor は結果を段階的に取得し、メモリ使用量を最小限に抑えます。
SScursor を使用した順次取得
SScursor から個々の行をストリーミングするには、for を使用できます。
import MySQLdb.cursors connection = MySQLdb.connect(...) cursor = connection.cursor(cursorclass=MySQLdb.cursors.SSCursor) cursor.execute(query) for row in cursor: print(row)
このループを通じて、メモリをオーバーロードすることなく行に順次アクセスできます。代わりに、Otto Allmendinger が提案しているように、 fetchone() メソッドを使用して一度に 1 行を取得することもできます。
以上がMySQLDB の SScursor は、大規模な結果セットを含むメモリを大量に使用するクエリをどのように効果的に処理できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。