写点什么

MySQL 锁的分类知多少

用户头像
卢卡多多
关注
发布于: 12 小时前
MySQL锁的分类知多少

MySQL 锁的分类:


根据细粒度的去划分


1. 悲观锁和乐观锁

(1)悲观锁

悲观锁对于数据库的操作,持久悲观态度, 所有的数据处理的操作过程中,他会有将相应的数据锁定,以其他应用系统无法修改,当前要使用的数据。


修改数据,会加锁,但是会影响数据库的性能,随之而来的就是,响应速度的降低;

(2)乐观锁

数据操作过程中,对于数据处理的持有乐观态度,在整个数据处理过程中,一般由具体的数据版本号去处理和触发类似于 version 的版本号字段,可以使用到, 其中对于数据更新的时候,将提交数据的版本与今天的版本号

2.读写锁

通常是在于数据读取和,数据更新的时候用到的,


读锁,当前数据,一份数据可以加多个读锁而不互相影响,读锁具有共享性


写锁,同一份数据,一旦加写锁,则不能增加写锁和读锁


直至释放掉读写锁之后,就可以了




很多的具体操作,在运行的过程中,读锁是我们常用到的,用于读取数据之后,更新数据,


先读后写,可以避免 不可重复写操作,




表锁, 行锁,页面锁


表级锁,进行加锁和释放锁, 开销;


加锁--> 表共享锁,表独占锁


表锁-> 不能对表进行操作, 当一个线程获取一个表的写锁,只有持有锁的线程可以, 表进行更新操作其他线程对数据表的读写操作 都会堵塞,直到写锁被释放为止

发布于: 12 小时前阅读数: 4
用户头像

卢卡多多

关注

努力寻找生活答案的旅途者 2020.04.12 加入

公众号:卢卡多多,欢迎一起交流学习

评论

发布
暂无评论
MySQL锁的分类知多少