PostgreSQL

The Linux Page Cache and PostgreSQL

PostgreSQL performance on Linux is often discussed in terms of SQL tuning, indexes, and query plans. Yet many real-world performance problems originate much lower in the stack: inside the Linux page cache and its writeback policy. PostgreSQL deliberately relies on the kernel for file caching and writeback, which means that kernel misconfiguration can silently undermine …

The Linux Page Cache and PostgreSQL + read more

Where is My Clustered Index in PostgreSQL?

Every SQL Server professional eventually reaches a point where storage internals stop being abstract. You learn that a table is not just a logical container but a physical structure, and that structure is defined by the clustered index. Rows live at the leaf level of a B-tree, the clustering key defines physical order, and every …

Where is My Clustered Index in PostgreSQL? + read more

Vector Capabilities with pgvector in PostgreSQL

With SQL Server 2025, Microsoft introduces vector support as a native engine feature: a built-in VECTOR(dim) data type, dedicated vector functions, and an approximate vector index tightly integrated into the optimizer. From a SQL Server point of view, this feels natural—vectors become another first-class datatype, queried via explicit functions such as VECTOR_DISTANCE or VECTOR_SEARCH, and …

Vector Capabilities with pgvector in PostgreSQL + read more

Spatial Data with PostGIS in PostgreSQL

Developers coming from SQL Server often approach PostgreSQL with the assumption that spatial functionality will look and behave more or less the same. After all, both systems expose geometry and geography types, both support distance calculations, and both offer spatial indexes. That assumption is only partially correct. While PostgreSQL with PostGIS covers everything SQL Server …

Spatial Data with PostGIS in PostgreSQL + read more

BRIN Indexes in PostgreSQL

When SQL Server professionals start working seriously with PostgreSQL, most of the learning curve feels comfortable. Tables behave as expected, transactions are familiar, and B-tree indexes look reassuringly similar to what you have used for years in SQL Server. Then you encounter BRIN indexes. At first glance, they seem almost reckless: no row pointers, no …

BRIN Indexes in PostgreSQL + read more