Python内存错误
我遇到了内存错误
我在使用 Python 2.6 和 pyodbc。
这段代码在执行多个 SQL 语句时会循环运行。单独运行时没问题,但循环的时候就卡住了。有时候循环能正常工作。
for Sql in LoopList:
f = csr.execute(Sql)
LL = list(f)
循环中的第二个元素会崩溃。
Sql:
Sql =""" SELECT * FROM group WHERE
C>10 AND M <0 AND S<0
AND TC >= 200 AND OC >=1000 and Penny =.01
ORDER BY MSlp
"""
3 个回答
0
因为你的查询返回的数据太多,导致无法存储在内存里,所以可以试试快速解决办法:增加你的虚拟内存。
- 打开“我的电脑”
- 右键点击,选择“属性”
- 进入“高级系统设置”
- 点击“高级”选项卡
- 在“性能”下点击“设置”
- 在“高级”选项卡下点击“更改”
- 增加内存大小,这样就会增加虚拟内存的大小。
这样做会把你的一部分硬盘空间变成虚拟内存,如果你的数据可以放进分配的内存里,那么问题就解决了。
4
你的查询返回的数据太多,无法放进内存里。execute
可能只是在一次只保留一个数据项在内存中,但如果把它转换成 list
,就需要把查询返回的每一个数据项都放进内存里。
0
解决办法是在MySQL里面使用存储过程来做SQL循环列表,然后从Python中调用它。这样就消除了Python的错误。
另外,还可以用numpy来测试字节大小。