行和键锁定

在您更新相对较少的行时,行和键锁定通常会提供最优的整体性能,因为它们提高了并发性。 然而,在获得锁定时会造成数据库服务器开销的增加。 对于更改较多行的操作,每行获得一个锁定可能在效能成本方面不合算。

对于更改大量行的操作,请考虑页锁定

缺省锁定方式是页锁。 如果希望行和键锁定,必须创建具有行锁定的表或变更该表。

以下示例显示如何创建具有行锁定的表:
CREATE TABLE customer(customer_num serial, lname char(20)...)
      LOCK MODE ROW;

ALTER TABLE 语句也能更改锁定方式。

如果锁定方式为 ROW,并且您插入或更新了某行,那么数据库服务器将创建行锁定。在某些情况下,只需使用 SELECT 语句读取某行也会给该行加上行锁。

锁定方式为 ROW,并且您插入、更新或删除了某个关键字(插入、更新或删除某行时自动执行)时,数据库服务器将在索引中的关键字上创建锁定。