oracle行级锁和表级锁的区别?

oracle行级锁和表级锁的区别?,第1张

区别:

1、表级锁,一般是指表结构共享锁锁,是不可对该表执行DDL *** 作,但对DML *** 作都不限制。 行级锁之前需要先加表结构共享锁。锁定整个表,限制对于其他用户对表的访问。

2、行级锁,一般是指排它锁,即被锁定行不可进行修改,删除,只可以被其他会话select。行级锁之前需要先加表结构共享锁。对目前被修改的行进行锁定,其它用户可访问被锁定的行以外的行。

基本说明:

1、行级锁是MySQL中锁定粒度最细的一种锁,表示只针对当前 *** 作的行进行加锁。行级锁能大大减少数据库 *** 作的冲突,其加锁粒度最小,但加锁的开销也最大。行级锁分为共享锁和排他锁。开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率低,并发度高;

2、表级锁是MySQL中锁定粒度最大的一种锁,表示对当前 *** 作的整张表加锁,它实现简单,资源消耗较少,被大部分MySQL引擎支持。最常使用的MyISAM与InnoDB都支持表级锁定。表级锁定分为表共享读锁与表独占写锁。不会出现死锁;锁定粒度大,发出锁冲突的概率最高,并发度最低。

表级锁,一般是指表结构共享锁锁,是不可对该表执行DDL *** 作,但对DML *** 作都不限制。

行级锁之前需要先加表结构共享锁。

根据锁的类型分,共有6种

LMODE

1、NULL,可以某些情况下,如分布式数据库的查询会产生此锁。

2、SS,表结构共享锁

3、SX,表结构共享锁+被 *** 作的记录的排它锁

4、S, 表结构共享锁+所有记录共享锁

5、SRX 表结构共享锁+所有记录排它锁

6、X 表结构排它锁+所有记录排它锁


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9981405.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存