shared_buffers = 128MB # min 128kB work_mem = 4MB # min 64kB temp_buffers = 8MB # min 800kB max_locks_per_transaction = 64 # min 10
shared_buffers = 256MB # min 128kB work_mem = 16MB # min 64kB temp_buffers = 32MB # min 800kB max_locks_per_transaction = 1024 # min 10
This parameter controls the average number of object locks allocated for each transaction; individual transactions can lock more objects as long as the locks of all transactions fit in the lock table. This is not the number of rows that can be locked; that value is unlimited. The default, 64, has historically proven sufficient, but you might need to raise this value if you have queries that touch many different tables in a single transaction, e.g. query of a parent table with many children.
Find more questions by tags PostgreSQL