我对读写锁定有点不确定,只需要有人检查这些关于读/写锁的事实是否正确。
这是一般的数据库。
阅读锁定:
写锁:
感谢您的澄清。我无法在互联网上找到这些陈述的直接断言。
答案 0 :(得分:6)
在数据库管理理论中,锁定用于实现多个数据库用户之间的隔离。这是"我"首字母缩写词ACID(Atomicity,Consistency,Isolation,Durability)。锁通过TX(事务)应用于数据,这可能会阻止其他TX在TX生命期间访问相同的数据。
简单锁定:可以请求两种主要类型的锁:
多重锁定: 两阶段锁定(2PL)是一种保证可串行化的并发控制方法。
答案 1 :(得分:4)
取决于所使用的isolation级别。
答案 2 :(得分:0)
读取锁:
多个线程可以同时获取多个读锁。
正确。多个读取锁可以同时存在。 (读取锁的另一个名称:共享锁)
当线程在行/表上具有读锁定时,没有线程可以更新/插入/删除该表中的数据。 (即使试图写数据的线程不需要写锁定。)
正确。写入事务应等待读取锁完成读取。
行/表不能同时具有读取和写入锁定。
正确。如果在读取锁之前拥有写入锁,则写入锁将阻止其他事务读取或写入同一表。如果您在写入锁定之前拥有读取锁定,则读取锁定将阻止写入事务,直到读取事务完成为止。
写锁:
当行/表具有写锁时,如果另一个线程/线程中实现了读锁,则不能被其他线程读取,但是如果没有实现读锁,则可以被其他线程读取(例如,简单的Select查询) )
对不起,我不明白这句话。 但是,当表具有写锁(排他锁)时,另一事务将无法对其进行读写。