首页 > 数据库 > mysql教程 > 如何在 Pandas 中处理大型 SQL 查询而不耗尽内存?

如何在 Pandas 中处理大型 SQL 查询而不耗尽内存?

Barbara Streisand
发布: 2025-01-13 08:48:42
原创
859 人浏览过

How Can I Handle Large SQL Queries in Pandas Without Running Out of Memory?

Pandas 和大型 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板