首页 > 编程知识 正文

oracle行锁和表锁的区别,数据库记录锁

时间:2023-05-06 20:29:18 阅读:31719 作者:1836

首先理解数据库锁:

锁和索引是数据库的两个核心概念,理解索引可以从b树、散列索引、页面结构、缓存池、索引原则等方面来理解。 要理解摇滚,从什么方面开始?

为什么要加锁

锁定的目的其实是为了保证数据的一致性。 如果多个线程同时访问某个数据,则锁定可以确保该数据始终最多只由一个线程访问,从而确保数据的完整性和一致性。

锁的分类

锁可以根据锁的粒度来分类,可以从数据库管理的角度来分类,也可以从程序的角度来看。

按摇号粒度划分

根据锁定的粒度,可以将锁定分为行锁定、页面锁定和表锁定。

InnoDB存储引擎的逻辑结构—所有数据逻辑存储在一个称为表空间的空间中,表空间由段、区和页组成。 http://www.Sina.com/http://www.Sina.com /

行锁是指根据行的粒度锁定数据,锁定粒度小,发生锁定冲突的概率低,并发性高,但对锁定的开销大,而且慢,容易发生死锁。

InnoDB存储引擎的逻辑结构

页面锁定是指按页面粒度进行锁定。 锁定的数据资源比行锁定多。 由于一页可以有多个行记录,所以使用页锁会浪费数据,因为表锁的行锁之间存在页锁开销。

行锁

表锁是指锁定数据,锁定粒度大,发送锁定的概率高,数据访问的同时性高。 但是,具有锁的使用成本小、上锁快的优点。

InnoDB和Oracle支持行锁和表锁,MyISAM只支持表锁,MYSQL BDB存储引擎支持页面锁和表锁。 SQL Server可以支持行锁、页面锁和表锁。

页锁

从数据库管理的角度来看,可以将锁分为独占锁和共享锁。

表锁

共享锁定(也称为读取锁定或s锁定)由共享锁定锁定的资源可以由其他用户读取,但不能修改。 选择时,对象将被共享锁定,数据读取完成后共享锁定将被解除,可以防止数据在读取时发生更改。按照数据库管理角度划分

锁定表表名READ;

对数据表施加共享锁定后,该表中的数据将处于只读模式。 此时,如果尝试更新某个表中的数据,则会报告错误。 示例:

更新产品_ commentsetproduct _ id=10002 where user _ id=912178;

系统错误如下:

错误1099 (hy 000 ) : table ' product _ comment ' waslockedwithareadlockandcan ' tbe updated

如果要解除表共享锁定:

解锁表;共享锁

SELECT * FROM表名WHERE . LOCK IN SHARE MODE

示例:

SELECT comment_id、product_id、comment_text、user_id FROM表名where user _ id=912178 lockinsharemode

给某个表加共享锁:

排他锁也称为排他锁、写锁定或x锁定。由排他锁锁定的数据只能用于执行锁定操作的事务,其他事务不能查询或修改锁定的数据。给某行数据加共享锁

锁定表产品_ comment write;

独占锁定的事务可以查询表进行修改。 其他事务在此表中查询数据时,必须等待。排他锁

解锁表;给表加排他锁

slect * from table _ name where . for update

示例:

SELECT comment_id、product_id、comment_text、user _ idfromtable _ name where user _ id=912178 for update;

当我们更新数据时,会自动使用独占锁,即INSERT、DELETE或UPDATE。 数据库自动使用独占锁,以防止其他事务修改数据。

http://www.Sina.com/http://www.Sina.com /

乐观锁定不会始终对同一数据执行并发操作,而且被认为是低概率事件,因此不需要每次更新或删除数据。

更新…set version=version1whereversion=version

此时,如果事务已更新此数据,则修复将不会成功。

释放掉排他锁

悲观锁定(Pessimistic Locking )由数据库自身的锁定机制实现,保证数据操作的排他性。

乐观锁定适用于读取操作较多的场景,相对较少的写入操作。 其优点是程序实现,没有死锁问题,但由于无法阻止程序以外的数据库操作,相应的场景也相对乐观。

悲观锁定适用于具有大量写入操作的场景,因为写入操作是排他的。 通过采用悲观锁定方式,可以在数据库层阻止其他事务对该数据的操作权限,防止读-写和写-写冲突

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。