MySQL 锁的分类知多少
MySQL 锁的分类:
根据细粒度的去划分
1. 悲观锁和乐观锁
(1)悲观锁
悲观锁对于数据库的操作,持久悲观态度, 所有的数据处理的操作过程中,他会有将相应的数据锁定,以其他应用系统无法修改,当前要使用的数据。
修改数据,会加锁,但是会影响数据库的性能,随之而来的就是,响应速度的降低;
(2)乐观锁
数据操作过程中,对于数据处理的持有乐观态度,在整个数据处理过程中,一般由具体的数据版本号去处理和触发类似于 version 的版本号字段,可以使用到, 其中对于数据更新的时候,将提交数据的版本与今天的版本号
2.读写锁
通常是在于数据读取和,数据更新的时候用到的,
读锁,当前数据,一份数据可以加多个读锁而不互相影响,读锁具有共享性
写锁,同一份数据,一旦加写锁,则不能增加写锁和读锁
直至释放掉读写锁之后,就可以了
很多的具体操作,在运行的过程中,读锁是我们常用到的,用于读取数据之后,更新数据,
先读后写,可以避免 不可重复写操作,
表锁, 行锁,页面锁
表级锁,进行加锁和释放锁, 开销;
加锁--> 表共享锁,表独占锁
表锁-> 不能对表进行操作, 当一个线程获取一个表的写锁,只有持有锁的线程可以, 表进行更新操作其他线程对数据表的读写操作 都会堵塞,直到写锁被释放为止
版权声明: 本文为 InfoQ 作者【卢卡多多】的原创文章。
原文链接:【http://xie.infoq.cn/article/5e822d9ce21e3eef75cfe92e9】。文章转载请联系作者。
评论