python - mysql读取->处理->更新,针对大数据进行优化

标签 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. 更新回表

最佳答案

最快的方法是创建插入并每隔几千行提交一次。将所有内容写入文件。删除索引使用 mysql 客户端加载数据并创建索引。优化服务器以进行批量操作。

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

关于python - mysql读取->处理->更新,针对大数据进行优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48964555/

相关文章:

MySql 算术与 Excel 不同

java - 有哪些工具可以分析 Java 中堆外的内存使用情况?

testing - 服务器响应时间是什么意思

python - 来自 groupby 平均值的 Pandas 新列

python - 根据其他列的日期和时间创建新列

python - Sprite 正在碰撞,但球不会向相反方向弹跳

java - 二维矩阵的DCT和IDCT在Java中的实现

python - 使用 Python 日志记录出现两次的日志消息

php - Laravel - 从模型动态构建路线

mysql - SQL : MAX of summing the values of 2 columns