Tuning for performance
High performance in PostgreSQL can be achieved by having good configuration settings and proper physical schema including indexes. Execution plans depend on the statistics gathered from the tables; fortunately, in PostgreSQL, one can control the behavior of the statistic collection.
For developers, it is important to get good performance. When handling foreign keys, there are two recommendations to increase performance, which are as follows:
- Always index foreign keys: Indexing a table foreign keys allows PostgreSQL to fetch data from the table using an index scan.
- Increase the column statistic target on foreign keys: This is also applicable to all predicates because it allows PostgreSQL to have a better estimation of the number of rows. The default statistic target is 100, and the maximum is 10,000. Increasing the statistics target makes the
ANALYZE
command slower.
Both of the preceding approaches require the identifying of foreign keys. The pg_catalog.pg_constraint
table...