When working with PostgreSQL you generally want to get information about slow queries. The usual approach is to set log_min_duration_statement to some low(ish) value, run your app, and then analyze logs. But you can log to many places - flat file, ...

On 9th of April, Tom Lane committed patch: Support indexing of regular-expression searches in contrib/pg_trgm. This works by extracting trigrams from the given regular expression, in generally the same spirit as the previously-existing support for LIKE searches, though of course the details are far ...

On 24th of March, Andrew Dunstan committed patch: Add parallel pg_dump option. New infrastructure is added which creates a set number of workers (threads on Windows, forked processes on Unix). Jobs are then handed out to these workers by the master process as needed. pg_restore ...

Some of you might be familiar with pgBouncer project. Some are not. Some understand what/how/why it does, others do not. This blog post is to have a place where I can point people who have question about how it works, why, ...

Yesterday I wrote about selects on int4 vs. texts. One of the comments that caught my attention was question about index creation time. So, let's see...

There is this idea that normal form in databases require you to use integer, auto incrementing, primary keys. The idea was discussed by many people, I will just point you to series of three blog posts on the subject by Josh ...

Three interesting patches: On 27th of March, Robert Haas committed patch: New GUC, track_iotiming, to track I/O timings. Currently, the only way to see the numbers this gathers is via EXPLAIN (ANALYZE, BUFFERS), but the plan is to add visibility through the stats collector and ...

Some time ago I wrote a blogpost about why index might not be used. While this post seemed to be well received (top link from depesz.com on reddit), it doesn't answer another question - what index to create for given situation. I'll ...

On 1st of February, Tom Lane committed patch: Support LIKE and ILIKE index searches via contrib/pg_trgm indexes.   Unlike Btree-based LIKE optimization, this works for non-left-anchored search patterns. The effectiveness of the search depends on how many trigrams can be extracted from the pattern. ...

On 29th of December, Robert Haas committed interesting patch, which does: Support unlogged tables.   The contents of an unlogged table aren't WAL-logged; thus, they are not available on standby servers and are truncated whenever the database system enters recovery. Indexes on unlogged tables ...