Welcome 微信登录

首页 / 数据库 / MySQL / MySQL行级锁测试

MySQL innodb存储引擎使用与Oracle相同的行锁机制,对如何查看系统中存在的行锁情况在下面的实验中,将可以看到。下面是测试过程:
session 1:更新记录mysql> set autocommit=off;Query OK, 0 rows affected (0.01 sec)mysql> update t1 set email="test@test.com" where id=0;Query OK, 4 rows affected (0.00 sec)Rows matched: 4  Changed: 4  Warnings: 0 session 2也更新相同的记录,出现等待 mysql> set autocommit=off; Query OK, 0 rows affected (0.00 sec) mysql> update t1 set email="abc" where id=0;session 3:查看系统等待事件:mysql> show status like "%lock%";+-------------------------------+---------+| Variable_name                 | Value   |+-------------------------------+---------+| Com_lock_tables               | 0       || Com_unlock_tables             | 0       || Innodb_row_lock_current_waits | 1       | --这里| Innodb_row_lock_time          | 0       || Innodb_row_lock_time_avg      | 0       || Innodb_row_lock_time_max      | 0       || Innodb_row_lock_waits         | 1       || Key_blocks_not_flushed        | 0       || Key_blocks_unused             | 14497   || Key_blocks_used               | 0       || Qcache_free_blocks            | 1       || Qcache_total_blocks           | 1       || Table_locks_immediate         | 2070991 || Table_locks_waited            | 2       |+-------------------------------+---------+14 rows in set (0.01 sec) session 1:提交记录 mysql> commit;Query OK, 0 rows affected (0.01 sec) session 2:update立刻完成 mysql> update t1 set email="abc" where id=0;Query OK, 4 rows affected (2 min 43.44 sec)--这么长时间完成更新操作Rows matched: 4  Changed: 4  Warnings: 0 session 3:再次查看系统等待事件 mysql> show status like "%lock%";+-------------------------------+---------+| Variable_name                 | Value   |+-------------------------------+---------+| Com_lock_tables               | 0       || Com_unlock_tables             | 0       || Innodb_row_lock_current_waits | 0       |  --这里为0| Innodb_row_lock_time          | 163436  || Innodb_row_lock_time_avg      | 163436  || Innodb_row_lock_time_max      | 163436  || Innodb_row_lock_waits         | 1       || Key_blocks_not_flushed        | 0       || Key_blocks_unused             | 14497   || Key_blocks_used               | 0       || Qcache_free_blocks            | 1       || Qcache_total_blocks           | 1       || Table_locks_immediate         | 2070991 || Table_locks_waited            | 2       |+-------------------------------+---------+
  • 1
  • 2
  • 下一页
Hibernate+Spring数据延迟加载问题解决方案初识Oracle执行计划相关资讯      MySQL基础教程 
  • MySQL基础教程:关于varchar(N)  (01月22日)
  • MySQL SELECT同时UPDATE同一张表  (02/19/2013 07:20:18)
  • Linux修改MySQL最大并发连接数  (02/15/2013 15:37:21)
  • 高性能MySQL(第3版) 中文PDF带目  (10/26/2014 10:03:50)
  • 如何在MySQL中的获取IP地址的网段  (02/18/2013 12:23:33)
  • C++和C#访问MySQL的简单代码示例  (12/21/2012 09:04:10)
本文评论 查看全部评论 (0)
表情: 姓名: 字数

版权所有©石家庄振强科技有限公司2024 冀ICP备08103738号-5 网站地图