Multiprocessing/multithreading 用于 Python 中的数据库查询

Multiprocessing/multithreading for database query in Python

我在数据库中有数百万条记录,我想通过 Python 读取它并将其存储在 pandas 数据框中。 问题是 select 查询处理时间非常长。 为了减少查询处理时间,我尝试对其执行多线程 我创建了 3 个线程并在每个线程的基础上进行查询

Select * from ( select *,rownum over (order by col1) rn from table) where rn%3=0 


Select * from ( select *,rownum over (order by col1) rn from table) where rn%3=1


Select * from ( select *,rownum over (order by col1) rn from table) where rn%3=2

然后我 运行 通过线程包在 Python 中使用线程的每个查询。

但是也没有减少多少时间

我是否可以采取任何其他方法来减少查询读取时间。 注意-我同时使用了 jdbc 和 odbc connection

只有当基础数据库引擎支持时,您才能使用 multi-threading。你应该检查一下。对于你的问题,我认为附件link会对你有所帮助: 如果答案对您有帮助,请将其选为最佳答案以帮助社区。

下面link对我有帮助 Multiprocessing with JDBC connection and pooling 我的 local.machine.

可以获得大约 25% 的收益