怎么给mysql加排他锁

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么给mysql加排他锁相关的知识,希望对你有一定的参考价值。

参考技术A 重新启动mysql
[root@bogon ~]# /etc/rc.d/init.d/mysql restart
Shutting down MySQL [ 确定 ]
Starting MySQL. [ 确定 ]
[root@bogon ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.22-rc-community-log MySQL Community Edition (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql 锁与事务的一些概念

mysql InnoDB引擎

共享锁(S) select ... lock in share mode, 加了共享锁的数据, 其它地方只能加共享锁, 不能加排他锁.

排他锁(X) select ...for update, update,delete,insert 都会自动给涉及到的数据加上排他锁, 加了排他锁的数据, 其它地方不能再加任何锁.

事务四个隔离级别
1.未提交读: 可以读未提交数据.
2.提交读: 只能读已提交的数据.
3.可重复读: 前后两次读取数据一致, 两种情况,一种, 开启事务, select出数据A,  数据A在其它地方被修, 再select出数据A, 这时两次数据是一样的,  二种, 开启事务, 修改出据A, select出数据A, 再修改数据A, select出数据A, 此时两次的数据都是第一次修改后的数据.
4.串行读: 串行化的读. 每次读都需要获得表级共享锁.

 

锁堵塞多数是事务没及时提交造成的

 

参考 Innodb中的事务隔离级别和锁的关系 

 

以上是关于怎么给mysql加排他锁的主要内容,如果未能解决你的问题,请参考以下文章

关于mysql 共享锁和排他锁 互斥问题?

MySQL-InnoDB锁

Innodb 共享锁 排他锁 及应用

mysql共享锁与排他锁

Mysql的共享锁和排他锁(转载)

浅谈Mysql共享锁排他锁悲观锁乐观锁及其使用场景