来自数据库的异步csv.writer

时间:2012-09-10 23:46:44

标签: python database asynchronous pyodbc

我有一个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中执行此操作?

我尝试使用多处理,但无法解决一些酸洗错误。

由于

2 个答案:

答案 0 :(得分:2)

Multithreading是一种实现并行性的轻量级方法,但正如文档所述,“线程是一种解耦不依赖的任务的技术。”你需要知道你的依赖关系在哪里,以便决定并行做什么。将单个磁盘存储所支持的数据库并行提交多个查询并不会比按顺序提交结果更快地返回结果并不明显。

答案 1 :(得分:0)

您必须创建多线程进程;原始进程启动一个新线程,它执行db访问和文件写入,而原始进程继续其业务。
 此外,不是创建访问数据库以检索相同数据的多个进程,而是使用单个后台进程。它会更安全,更快速,更容易调试。