No Picture
PostgreSQL Internals

PostgreSQL Mutex tips and techniques

Mutexes (short for mutual exclusion) are used in PostgreSQL to ensure that only one thread of execution can access a shared resource at any given time. Here are some tips and techniques for working with […]

No Picture
PostgreSQL Performance

PostgreSQL Row Lock and Row Level Locking

In PostgreSQL, row locks are used to control access to individual rows in a table, allowing multiple transactions to access the same table without interfering with each other. Row level locking is a mechanism that […]

No Picture
PostgreSQL Performance

Parallel Hash Joins in PostgreSQL

Parallel Hash Joins in PostgreSQL are a type of join operation that can be executed in parallel, allowing for faster and more efficient execution of database queries. In a hash join, the database first builds […]

No Picture
PostgreSQL Performance

Buffer Header Queues in PostgreSQL

In PostgreSQL, buffer headers are data structures that represent a single page of data in the shared buffer cache. Each buffer header has information about the state of the page it represents, such as whether […]

No Picture
PostgreSQL Performance

Postgres Indexing: When Does BRIN Win?

BRIN (Block Range INdex) is a type of index in Postgres that is used for large tables with a large number of rows and a high degree of clustering. BRIN is an efficient way to […]

No Picture
PostgreSQL Performance

How is INSERT lock implemented in PostgreSQL 16?

In PostgreSQL, the lock behavior during an INSERT operation depends on the type of table that the operation is performed on. For a normal table, an INSERT lock is typically acquired on the table, which […]

No Picture
PostgreSQL Internals

How to use pg_largeobject in PostgreSQL?

The pg_largeobject system table in PostgreSQL is used to store and manage large binary objects (BLOBs) of binary data. To use pg_largeobject, you need to perform the following steps: For example, the following code shows […]