锁的类型
基于锁的属性分类:共享锁、排他锁。
基于锁的粒度分类:行级锁(INNODB)、表级锁(INNODB、 MYISAM)、 页级锁(BDB引擎)、 记录锁、间隙锁、临键锁。
基于锁的状态分类:意向共享锁、意向排它锁。

●共享锁(Share Lock)
共享锁又称读锁,简称S锁; 当:一个事务为数据加上读锁之后,其他事务只能对该数据加读锁,而不能对数据加写锁,直到所有的读锁释放之后其他事务才能对其进行加持写锁。共享锁的特性主要是为了支持并发的读取数据,读取数据的时候不支持修改,避免出现重复读的问题。
●排他锁(eXclusive Lock)
排他锁又称写锁,简称X锁; 当一个事务为数据加上写锁时,其他请求将不能再为数据加任何锁,直到该锁释放之后,其他事务才能对数据进行加锁。排他锁的目的是在数据修改时候,不允许其他人同时修改,也不允许其他人读取。避免了出现脏数据和脏读的问题。

●表锁
表锁是指上锁的时候锁住的是整个表,当下:一个事务访问该表的时候,必须等前一个事务释放了锁才能进行对表进行访问;
特点:粒度大, 加锁简单,容易冲究:
●行锁
行锁是指上锁的时候锁住的是表的某一-行或多行记录, 其他事务访问同一张表时,只有被锁住的记录不能访问,其他的记录可正常访问;
特点:粒度小,加锁比表锁麻烦,不容易冲突,相比表锁支持的并发要高;

  • 意向共享锁:事务想要获得一张表中某几行的共享锁
  • 意向排他锁:事务想要获得一张表中某几行的排他锁
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容