MySQL 如何快速全表更新某个字段值

2023年 8月 15日 28.3k 0

最近遇到一个有趣的MySQL问题,如何快速全表更新某个字段值,比如有一张大表,1千万条记录,其中有个字段c,如何高效地全表更新字段c的值,使得c=c+1。

这个问题似乎没有什么好的解决方法,有个朋友提示,能否将1千万条记录拆分成多个部分,并发更新,这种比单纯的一条SQL全表更新要快一些。真的是这样吗?我做了一个实验。

1. 环境配置:
  • 机器配置:16核,32G
  • MySQL 版本:5.7.19,1主2从
  • 1张sysbench表,1千万条数据
2. 测试结果:

(1)单独一条SQL更新全表,耗时 3 min 41.78 sec。

update sbtest1 set k=k+1;

(2)将1千万条数据分为4个部分,并发更新,耗时 1 min 23.05 sec。

update sbtest1 set k=k+1 where id >=1 and id =2500001 and id =5000001 and id =7500001 and id

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论