Row and key locks
Row and key locks generally provide the best overall performance when you are updating a relatively small number of rows, because they increase concurrency. However, the database server incurs some overhead in obtaining a lock. For an operation that changes a large number of rows, obtaining one lock per row might not be cost effective.
For an operation that changes a large number of rows, consider Page locks.
The default locking mode is page-locking. If you want row or key locks, you must create the table with row locking on or alter the table.
CREATE TABLE customer(customer_num serial, lname char(20)...)
LOCK MODE ROW;
The ALTER TABLE statement can also change the lock mode.
When the lock mode is ROW and you insert or update a row, the database server creates a row lock. In some cases, you place a row lock by simply reading the row with a SELECT statement.
When the lock mode is ROW and you insert, update, or delete a key (performed automatically when you insert, update, or delete a row), the database server creates a lock on the key in the index.