bitsCN.com
数据库事务处理之排他锁
排他锁
下面做作一个实验,验证锁的效果
终端一,首先进入事务状态然后运行下面语句
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from t1 where id='3' for update;
+----+--------+---------------------+---------------------+
| id | name | ctime | mtime |
+----+--------+---------------------+---------------------+
| 3 | test | 0000-00-00 00:00:00 | 2013-01-14 13:05:41 |
+----+--------+---------------------+---------------------+
1 row in set (0.00 sec)
终端二, 查询表中数据
mysql> select * from t1;
+----+--------+---------------------+---------------------+
| id | name | ctime | mtime |
+----+--------+---------------------+---------------------+
| 1 | neo | 0000-00-00 00:00:00 | 2013-01-14 13:00:00 |
| 2 | zen | 0000-00-00 00:00:00 | 2013-01-14 13:00:43 |
| 3 | test | 0000-00-00 00:00:00 | 2013-01-14 13:05:41 |
+----+--------+---------------------+---------------------+
3 rows in set (0.00 sec)
增加“for update”查询非锁定记录
mysql> select * from t1 where id=2 for update;
+----+------+---------------------+---------------------+
| id | name | ctime | mtime |
+----+------+---------------------+---------------------+
| 2 | zen | 0000-00-00 00:00:00 | 2013-01-14 13:00:43 |
+----+------+---------------------+---------------------+
1 row in set (0.00 sec)
查询被锁定记录
mysql> select * from t1 where id=3 for update;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
查询所有记录,因为记录中包含了id=3那条,所以也不允许查询。
mysql> select * from t1 for update;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
测试修改记录
mysql> UPDATE `t1` SET `name`='testaa' WHERE `id`=3;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
提示
在没有出现ERROR 1205 (HY000)的这段时间,只要终端一中执行commit,rollback.终端二中的语句就会运行。
bitsCN.com
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号