Summary
PostgreSQL has a very complex cost-based query planner and optimizer that does its best to provide the fastest access to the underlying data.
Thanks to the EXPLAIN
command, database administrators can monitor queries to track down the costs and the time taken for execution, and decide on how to improve them in order to get faster results. Usually, the creation of indexes is the less intrusive choice in query tuning, and PostgreSQL has a very rich and expressive index interface that allows the creation of single-column, multi-column,and partial indexes of different types and technologies. When indexes do not suffice, query rewriting could be a possible solution to perform query tuning.
Costs used by the planner are based on statistical data that has to be kept, as much as possible, up to date. While the auto-analyze daemon aims to do this, the DBA can always rely on the manual ANALYZE
command to update the statistics.
Understanding a query plan, knowing which nodes...