Mysql中的锁
程序员文章站
2022-06-02 12:52:23
...
锁的作用
避免资源征用的机制功能
资源征用:多个任务同时使用一个资源,对资源产生征用
数据库中,记录(数据)就是资源,不同客户端对记录的CRUD操作就是任务。
在某个任务使用资源时,标识出来,其他任务就不能同时操作,等待或者放弃。
流程
先尝试加锁,如果锁定成功,去使用资源,否则等待或放弃
锁的类型
不同类型的锁,导致并发操作是不一样的。
共享锁,读锁,S-lock:
在需要进行读操作时,增加的锁定类型。会共享读操作,其他任务也可以多操作,阻塞写操作,但是不能执行写操作。
排他锁,独占锁,写锁,X-lock:
在需要执行写操作时增加锁定类型,会独占该资源,其他任何既不能读,也不能写。
MySQL在执行任何的SQL会自动增加
锁粒度(范围)
在MySQL中,锁被实现了不同的粒度。
一旦加锁,锁定的记录数量不同。
表级,table-level:操作会锁定整张便,无论时共享锁还是独占锁。
行级,row-level:操作会锁定操作的记录
同时实现了表级和行级锁定
MySQL中锁的相关语法
表锁:无论myisam还是innodb,都是表锁
加锁:lock tables table-name1,table-name2|READ|WRITE;
解锁:Unlock tables;
行锁:对于innodb,支持行锁:
对查询的记录增夹共享锁select * from table where LOCK IN SHERE MODE;
对查询的记录增减排他锁select * from table FOR UPADTE;
上一篇: 数据库查询优化——Mysql索引
下一篇: 25种花茶具有健康养生减肥功效