ホームページ >データベース >mysql チュートリアル >Pandas でメモリ不足にならずに大規模な SQL クエリを処理するにはどうすればよいですか?
パンダと大規模な SQL クエリ: メモリ効率の高いアプローチ
pandas.io.sql.read_frame()
を使用して 500 万レコードを超える SQL クエリを処理すると、メモリ エラーが発生する可能性があります。 ただし、pandas は、このような大規模なデータセットを処理するための堅牢なソリューション、つまり、データセットをより小さく管理しやすいチャンクで処理するソリューションを提供します。
pandas バージョン 0.15 以降、read_sql_query()
関数には chunksize
パラメーターが組み込まれています。これにより、クエリ結果を繰り返し取得できるようになり、メモリ消費量が大幅に削減されます。 チャンクごとに必要なレコード数を指定すると、大規模なクエリがより小さく、より管理しやすい部分に効果的に分割されます。
たとえば、5,000 レコードのチャンクでクエリを処理するには:
<code class="language-python">sql = "SELECT * FROM MyTable" for chunk in pd.read_sql_query(sql, engine, chunksize=5000): # Process each chunk here (e.g., calculations, analysis, etc.) print(chunk) </code>
この反復的なアプローチにより、データセット全体を同時にメモリに読み込むことが回避されます。 各チャンクは個別に処理されるため、メモリ フットプリントが最小限に抑えられ、非常に大規模なデータセットであっても、pandas DataFrame 内で効率的なデータ操作が可能になります。 chunksize
パラメータは、大量の SQL クエリを効率的に処理し、メモリの枯渇を防ぐための鍵となります。
以上がPandas でメモリ不足にならずに大規模な SQL クエリを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。