sql一天只有一条数据_MYSQL 一条update语句锁了多少数据

一条update语句会锁住多少数据?作为一名开发工程师,大家平时有去想过这样的问题吗?那么既然打开了,我们一起来看看。

本文数据库隔离级别为:可重复读,存储引擎为Innodb

有一天我在给小张进行code review,熟悉的mybatis代码,没有一条SQL,代码翻译成SQL如下:

update key_word_info set count = count + 1 where user_id = 123;

我:你在user_id 上加索引了吗?

小张:好像没有额。。。。。

我:那你知道这条SQL执行后会锁住多少数据?

小张:一个表?

同学们应该发现了,这一条SQL会把整个表都锁住,导致其他线程没有办法写入数据,严重影响了我们的写入的并发能力。

我接着问小张

我:你觉得在user_id 上加上索引会怎样?

alter table key_word_info add index(user_id);

小张:是对找出来的那几条数据加上锁?

我:我们要不实践一下?

于是我们列举了一些数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值