LittleWrong
(Ti D Ber Ucx Oaz5s)
2024 年10 月 15 日 09:27
1
【 TiDB 使用环境】生产环境
【 TiDB 版本】v7.5
【遇到的问题:问题现象及影响】
现在有频繁的UPDATE
erp_base.tb_base_masterdata_phone_record
SET
phone = ‘13033xxxxxxx’
WHERE
old_cust_id = ‘60108700000663’
AND cust_id = ‘7d73cfd7-64a9-4545-828d-c98bff6aed00’
热力图上显示读取每分钟5G,平均每秒50-80MB,我想问一下,这个update为什么会造成这么高的读取IO呢,表数据量:500W。5个TIDB,TIKV,PD,16v64g
但实际上我用iotop在宿主机上面看,并不高只有几MB。
谢谢!
zhanggame1
(Ti D Ber G I13ecx U)
2024 年10 月 15 日 09:58
2
把执行计划发下,另外你的update一次更新多少条数据?
1 个赞
Kongdom
(Kongdom)
2024 年10 月 15 日 10:09
3
这个是tikv存储扫描数据量,不是update数据量。
1 个赞
有猫万事足
2024 年10 月 15 日 15:29
4
explain analyze
select * from
erp_base.tb_base_masterdata_phone_record
WHERE
old_cust_id = ‘60108700000663’
AND cust_id = ‘7d73cfd7-64a9-4545-828d-c98bff6aed00’
看看这个执行计划是什么样的。update要先找到,可能是读取扫描的数据多,大概率是没有用到索引。频繁的扫全表了。
1 个赞
LittleWrong
(Ti D Ber Ucx Oaz5s)
2024 年10 月 16 日 00:57
5
忽略了这点,update的时侯没有根据主键,实际上也是要扫描表的,感谢。
1 个赞
system
(system)
关闭
2024 年10 月 23 日 00:57
6
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。