我有一个Python脚本,可以将数据库中的数据提取到CSV文件中。我使用pyodbc访问数据库并执行查询。我还使用csv.writer将查询输出到一个文件中:
with open(source_filename, 'w', newline='') as source_file:
csv.writer(source_file, quoting=csv.QUOTE_NONNUMERIC).writerows(db_cursor)
因为脚本输出数据库中的所有表,所以我希望通过使用后台处理而不是一个接一个地处理来加快提取速度。在Python中有办法做到这一点吗?
我尝试过使用多处理器,但无法克服一些酸洗错误。
感谢
多线程是实现并行的一种较轻的方法,但正如文档所说,"线程是一种解耦不按顺序依赖的任务的技术。"您需要知道依赖项在哪里,才能决定并行执行什么。将多个查询并行提交到由单个磁盘存储支持的数据库会比顺序提交查询更快地返回结果,这一点并不明显。
nbsp;您必须创建多线程进程;原始进程启动一个新线程,该线程执行数据库访问和文件写入,而原始进程继续其业务
nbsp 此外,与其创建多个访问数据库以检索相同数据的进程,不如使用单个后台进程。它将更安全、更快、更容易调试。