Database 读操作是否可以阻止数据库的写操作?

Database 读操作是否可以阻止数据库的写操作?,database,derby,Database,Derby,数据库derby出现问题。有时写作的操作需要很多时间。 有没有可能很多操作都是读写阻塞? 谢谢。读取需要共享锁。写入(更新)需要独占锁。要获得独占锁,事务必须等待共享锁释放。所以 允许尝试读取相同数据的另一个事务 读取,但尝试更新数据的事务将被删除 在释放共享锁之前禁止执行此操作 也可以看德比的 您可以通过更改一个或多个事务的名称来减少影响。Derby的默认值是readcommitted,这意味着您必须将一个或多个读卡器设置为readuncommitted,以提高并发性。但是readuncomm

数据库derby出现问题。有时写作的操作需要很多时间。 有没有可能很多操作都是读写阻塞?
谢谢。

读取需要共享锁。写入(更新)需要独占锁。要获得独占锁,事务必须等待共享锁释放。所以

允许尝试读取相同数据的另一个事务 读取,但尝试更新数据的事务将被删除 在释放共享锁之前禁止执行此操作

也可以看德比的

您可以通过更改一个或多个事务的名称来减少影响。Derby的默认值是
readcommitted
,这意味着您必须将一个或多个读卡器设置为
readuncommitted
,以提高并发性。但是
readuncommitted
允许脏读、不可重复读和虚读。(
readcommitted
允许不可重复读取和幻象读取,但不允许脏读取。)

另一种减少读卡器阻塞编写器的方法是使读卡器运行得更快。通过阅读查询执行计划、明智地使用单列和多列索引,以及定期重建索引以减少碎片,来优化查询