Mysql 锁

老虎说测试 系统运维字数 1001阅读3分20秒阅读模式
摘要Mysql 锁

Mysql 锁。

Mysql 锁

WampServer修改MySQL ROOT用户密码

 文章源自陈学虎-https://chenxuehu.com/article/2016/05/5120.html

  1. /**
  2. MYSQL锁
  3. 表级锁
  4.     开销小,锁定粒度大,发生冲突的概率高,不会出现死锁(myisam、memory)
  5. 行级锁
  6.     开销大,锁定粒度小,发生冲突的概率低,会出现死锁(InnoDB)
  7. 页面锁
  8.     开销界于表级锁和行级锁之间,会出现死锁(BDB)
  9. */
  10. #Table_locks_immediate表示立即释放MySQL表锁数
  11. #Table_locks_waited表示需要等待的MySQL表锁数
  12. #如果Table_locks_waited的值比较高,则说明存在着较严重的表级锁争用情况。
  13. show status like 'table%';
  14. #获取InnoDB行锁争用情况。重点关注InnoDB_row_lock_waits和InnoDB_row_lock_time_avg
  15. show status like 'innodb_row_lock%';
  16. show engine innodb status;
  17. -- 锁演示
  18. create table test_lock
  19. (
  20.     id int(10) UNSIGNED auto_increment,
  21.     name VARCHAR(100) not null,
  22.     PRIMARY KEY (id)
  23. )ENGINE=MyISAM DEFAULT charset=utf8;
  24. insert into test_lock(name) VALUE ('test');
  25. -- 写锁定
  26. lock TABLE test_lock write;
  27. -- 当前session对锁定表的查询、更新、插入操作都可以支持
  28. select * from  test_lock;
  29. insert into test_lock(name) VALUE ('test1111');
  30. select * from  test_lock;
  31. -- 新建一个查询,然后输入查询,无法查询到结果
  32. #释放锁
  33. UNLOCK TABLES;
  34. -- 然后去新的查询中执行,可以执行
  35. #5.6版本以上的mysql可以通过my.cnf中配置innodb_print_all_deadlocks=1来吧死锁的信息输出到日志里
  36. #如果有,关注lock关键字
文章源自陈学虎-https://chenxuehu.com/article/2016/05/5120.html文章源自陈学虎-https://chenxuehu.com/article/2016/05/5120.html

 最后更新:2022-2-17
  • 版权声明:本文为原创文章,转载请附上原文出处链接及本声明。
  • 转载请注明:Mysql 锁 | https://chenxuehu.com/article/2016/05/5120.html