更新一个索引中的健
背景:
改一个字段的value,字段长度20,原值20
怎么改:
改末尾的那个字符,让页分裂控制在局部
具体性能灾难
.B+树索引分裂:新值若不在原数据页,导致索引页分裂(Index Page Split),操作需加排他锁(X锁),阻塞读写,加剧页碎片,拖慢扫描速度。
主键(聚簇索引)更新最致命:所有二级索引均存储主键值,主键变更会触发所有二级索引的同步更新,磁盘1/O和 Redo Log写入量飙升,锁范围扩大,极易死锁。
二级索引更新稍好:虽不移动行数据,但二级索引页同样会分裂,且需回表更新。
性能对比参考(百万级表)
操作
更新非索
引列
更新二级
索引列
QPs(约)
5000-
10000
1000-
3000
延迟(约)
5毫秒<
10-30毫秒
碎片率
低
中
浙公网安备 33010602011771号