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 |+-------------------------------+---------+
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)