使用Sqlalchemy优化并发数据库访问

时间:2015-12-22 16:19:42

标签: python sqlalchemy multiprocessing python-multiprocessing

我有一个数据处理应用程序,可以将结果保存到数据库表(4列,目前300k行,可能增长到1000万行)。它以下列方式使用Python的多处理模块:

def worker(input_):
    session = _open_scoped_session()   # leaving details aside
    # do some work, add some objects to session
    session.commit()
    session.close()
    return

pool = multiprocessing.Pool(processes=n_proc)
pool.map(worker, inputs)
# ...

我怀疑每个工作进程中的打开和关闭会话,即几十万个打开/关闭调用,占用了大量的执行时间(是的,我知道我需要对其进行正确的分析)。有没有办法在这种工作流程中优化数据库访问?也许,使用连接池? 我在1Gbit / s网络上使用SQL Server 2012和Sqlalchemy以及pymssql。

0 个答案:

没有答案