mysql阅读 - >过程 - >更新,优化大量数据

时间:2018-02-24 15:41:13

标签: python mysql optimization distributed-computing

我有一个简单的任务。从mysql读取数据 - >执行一些操作(不是很重) - >然后将结果更新回mysql DB`。在数据库中有20个不同的表(每个约600000行)。

我使用ThreadPoolExecutor(max_workers=20)编写了一个python脚本来优化总体执行时间,但大约需要40个小时。我想为下次运行优化它。

我尝试运行多个代码实例,但性能不是很重要。 是否有更好的方法可以像分布式代码或任何人都知道的那样快速完成任务?

代码的简约算法

conn.autocommit = True
ThreadPoolExecutor(max_workers=20)
  1. 通过元组读取数据和处理元组如下
  2. 使用TextBlob()。detect_language()
  3. 检测句子中的语言
  4. 更新回表

1 个答案:

答案 0 :(得分:1)

最快的方法是创建插入并提交每几个thousends行。将Everyting写入文件。使用mysql客户端和creata索引删除索引加载数据。优化服务器以进行批量操作。

Python中的并行性不起作用。 Parallelism in python isn't working right