如何避免数据库中的读取锁?
时间:2020-03-05 18:45:44 来源:igfitidea点击:
如何避免数据库中的读取锁?
欢迎回答多个数据库!
解决方案
回答
在SQL Server中,可以在select语句中使用with(nolock)关键字。例如:
Select table1.columna, table2.columna from table1 with(nolock), table2 with(nolock)
确保为查询中的每个表/视图指定with(nolock)。
回答
杰夫·阿特伍德(Jeff Atwood)在该主题上有一篇不错的文章:
http://www.codinghorror.com/blog/archives/001166.html
回答
在Oracle中,默认的操作模式是"读取已提交"隔离级别,在该级别中,选择语句不会被另一个修改其读取数据的事务阻止。
从数据并发和一致性:
Each query executed by a transaction sees only data that was committed before the query (not the transaction) began. An Oracle query never reads dirty (uncommitted) data.
回答
在《火鸟》中,作家永远不会阻止读者,也不会有脏读。仅只读提交级别和快照隔离级别。
它使用多代引擎(我相信像oracle这样)而不是简单的页面或者记录锁定。
回答
PostgreSQL还使用MVCC(多版本并发控制),因此,使用默认事务隔离级别(已提交读),我们永远都不应阻塞,除非有人对数据库进行维护(删除/添加列/表/索引/等等)。 。