退出函数后,如何从ram中删除sqlalchemy



嗨,我想使用sqlalchemy连接到我的表,获取一些列,用它们做一些事情,然后继续前进。问题是当我退出函数时,我的ram空间没有打开。这是一个伪示例。

from sqlalchemy import create_engine
import gc
mem = !free
dic = {}
dic_conn = {}
print(mem[1])
engine_ = create_engine(psql_string)
for tb in ['tb_1', 'tb_2', 'tb_3', 'tb_4',]:
conn = engine_.connect()
dic[tb] = conn.execute("select * from tb".format(tb))
dic_conn[tb] = conn
for k in dic_conn.keys(): dic_conn[k].close(); dic_conn[k] = None
for k in dic.keys(): dic[k].close(); dic[k] = None
engine_.dispose()
del dic_conn
del dic
del engine_
gc.collect()
mem = !free
print(mem[1])

我尝试了我能想到的任何东西,让我知道如何释放内存

sqlalchemy将缓冲区端放在客户端,您也可以将缓冲区放在服务器端,从而释放缓冲区空间。这个命令就能做到。

conn = engine_.execution_options(stream_results=True).connect()