Many performance issues come from bad designs or implementations that just don't fundamentally work well with PostgreSQL. There are a few areas where the problem is not so bad; it's more of a quirk with known workarounds. This section covers some of the more common problems new PostgreSQL users run into from this category.
Common performance issues
Counting rows
It's not unusual to find an application that does the following to determine how many rows there are in a table:
SELECT count(*) FROM t;
In some databases other than PostgreSQL, this executes very quickly, usually because that information is kept handy in an index or similar structure. Unfortunately, because PostgreSQL keeps its row visibility information...