当前位置:   article > 正文

mysql 并发控制_mysql并发控制

mysql锁并发控制

mysql并发控制

当有多个查询需要同时修改同一个数据,就会产生并发控制的问题。mysql可以在两个层面进行并发控制:服务器层和存储引擎层。

mysql通过加锁实现并发控制:

⑴锁有两类:

读锁:共享锁,即一个读锁不会阻塞其它读锁,多个用户可同时读取同一个资源,而不互相干扰。

写锁:排他锁,即一个写锁会阻塞其它读写锁,在给定时间内,只有一个用户能执行写入。

⑵锁粒度:

表级锁:锁定整张表

行级锁:并发程度更高,但维护较麻烦,会增加系统开销,易产生死锁。行级锁只能在存储引擎级别实现,MyISAM存储引擎不支持行级锁

⑶锁分类:

隐式锁:由存储引擎自动完成

显式锁:用户可手动施加锁(表级锁)

⑷手动加解锁:服务器级别

LOCK TABLES tb_name {READ|WRITE},...;

UNLOCK TABLES;

FLUSH TABLES WITH READ LOCK;   #全局施加读锁

InnoDB存储引擎也支持另外一种显式锁(只锁定挑选出的行):

SELECT ... LOCK IN SHARE MODE;

SELECT ... FOR UPDATE;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/738580
推荐阅读
相关标签
  

闽ICP备14008679号