mysql行锁测试

特别注意:行锁,表锁区别:其实就是看where后面的条件是否有有索引,有索引的时候就是行锁,没有索引的时候就是表锁,主键本身就是索引。
也就是没有索引的话,虽然修改的是一行,但是还是是锁表,但是where条件后面是主键是行锁

1.查看mysql自动提交是否开启
show variables like ‘%commit%’

2.当前 session1关闭mysql自动提交
set autocommit=off;

3.新建test表,session1更新表数据
update test set data=’test@test.com’ where id=1;

4.新开一个session2窗口更新同样行数据,注意行锁有等待超时限制,一定时间会释放
set autocommit=off;
update test set data=’aa@aa.com’ where id=2;
commit;
发现id=2可以修改,证明session1触发的是行锁,这个时候去更新同样的行
update test set data=’aa@aa.com’ where id=1;

5.查看系统是否有锁等待
show status like ‘%lock%’;

Innodb_row_lock_current_waits这个参数的值

6.查看show open tables ,可以看出
show open tables where In_use > 0;

Original: https://www.cnblogs.com/liqing1009/p/16258661.html
Author: 鸾舞春秋
Title: mysql行锁测试

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/8174/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部
最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总