MySQL--共享锁和排他锁

锁的由来和基本概念

当我们在操作数据库时,可能由于多用户并发导致数据不一致性。而锁的出现就是通过禁止某些操作在一段时间之内来避免这种数据的不一致性。

而MySQLl锁机制分为表级锁和行级锁,本文就和大家分享一下我对MySQL中行级锁中的共享锁与排他锁。

共享锁

又称读锁(S),对某一资源加共享锁,自身可以读该资源,其他人也可以读该资源(也可以再继续加共享锁,即 共享锁可多个共存),但无法修改。要想修改就必须等所有共享锁都释放完之后。

产生共享锁的SQL:select * from ad_plan lock in share mode;

排他锁

又称写锁(X),对某一资源加排他锁,自身可以进行增删改查,其他人无法进行任何操作。

产生排他锁的SQL:select * from table for update --增删改自动加了排他锁

以上是简单的概念,自己介绍的有点浅显。建议大家参考大佬博客:

https://blog.csdn.net/localhost01/article/details/78720727 【作者:看官大人】
https://www.cnblogs.com/liaoweipeng/p/7615959.html【作者:鹏鹏】
概念讲的非常的清晰,可以参考一下,两位大佬的。

自己可以通过Navicat来进行测试,当然我也自行测试过,截图丢了,尴尬就不发了,建议参考大佬的博客,讲的是非常清晰,你们可以参考一下:

https://www.cnblogs.com/boblogsbo/p/5602122.html 【作者:java攻城狮】
例子写的非常详细,自己可以参考大佬的实现一下。

你可能感兴趣的:(MySQL)