0

我有一个 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 中做到这一点?

我尝试使用 Multiprocessing 但无法克服一些酸洗错误。

谢谢

4

2 回答 2

2

多线程是实现并行性的一种更轻量级的方法,但正如文档所述,“线程是一种用于解耦不依赖于顺序的任务的技术。” 您需要知道您的依赖项在哪里才能决定并行执行的操作。将多个查询并行提交到由单个磁盘存储支持的数据库会比按顺序提交更快地返回结果,这一点并不明显。

于 2012-09-11T00:23:21.523 回答
0

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

于 2012-09-11T20:20:07.190 回答