在SQLServer中,可以使用语法"(nolock)"来确保查询不会锁定表,或者不会被锁定同一表的其他查询阻止.
SELECT * FROM mytable (nolock) WHERE id = blah
Postgres中的等效语法是什么?我在PG(http://www.postgresql.org/docs/8.1/interactive/sql-lock.html)中找到了一些关于表锁定的文档,但这些文档似乎都是针对如何创建一个表,而不是确保它是not locked.
在SQLServer中,可以使用语法"(nolock)"来确保查询不会锁定表,或者不会被锁定同一表的其他查询阻止.
SELECT * FROM mytable (nolock) WHERE id = blah
Postgres中的等效语法是什么?我在PG(http://www.postgresql.org/docs/8.1/interactive/sql-lock.html)中找到了一些关于表锁定的文档,但这些文档似乎都是针对如何创建一个表,而不是确保它是not locked.
SELECT不会锁定PostgreSQL中的任何表,除非需要锁定:
SELECT * FROM tablename FOR UPDATE;
PostgreSQL使用MVCC来最小化锁争用,以便在多用户环境中实现合理的性能.读者不会与作者或其他读者发生冲突.