- 问题
用一个计数表记录一个业务表的总行数,在往业务表插入数据的时候,需要给计数值加 1。
逻辑实现上是启动一个事务,执行两个语句:
insert into 数据表;
update 计数表,计数值加 1。
从系统并发能力的角度考虑,怎么安排这两个语句的顺序。
- 分析
并发系统性能的角度考虑,应该先插入操作记录,再更新计数表。
因为更新计数表涉及到行锁的竞争,先插入再更新能最大程度地减少事务之间的锁等待,提升并发度。
- 参考答案
先插入再更新
微信扫一扫
用一个计数表记录一个业务表的总行数,在往业务表插入数据的时候,需要给计数值加 1。
逻辑实现上是启动一个事务,执行两个语句:
insert into 数据表;
update 计数表,计数值加 1。
从系统并发能力的角度考虑,怎么安排这两个语句的顺序。
并发系统性能的角度考虑,应该先插入操作记录,再更新计数表。
因为更新计数表涉及到行锁的竞争,先插入再更新能最大程度地减少事务之间的锁等待,提升并发度。
先插入再更新
相关推荐