Below is a list of configurations that might help with Postgres performance.
cpu_tuple_cost = 0.1
At a default of 0.001, this value makes Postgres optimzer think that full table scan is a lot cheaper than index access in many cases and resulted in doing full table scan where an index is more efficient. Set this value to 0.1, observe database performance and adjust as necessary.
shared_buffer
This memeory area is used by Postgres to do work. Default setting is very small and needs to be increase depending on available memory. Medium size data set and 256-512MB available RAM: 16-32MB (2048-4096) Large dataset and lots of available RAM (1-4GB): 64-256MB (8192-32768)
NOTE: Be aware that setting this value too high can have adverse effect. In general, this value should be no more than 10% of the available memory.
effective_cache_size
This parameter allows PostgreSQL to make best possible use of RAM available on your server. The objective is to set this value at the highest amount of RAM which will be available to PostgreSQL all the time.
cpu_tuple_cost = 0.1
At a default of 0.001, this value makes Postgres optimzer think that full table scan is a lot cheaper than index access in many cases and resulted in doing full table scan where an index is more efficient. Set this value to 0.1, observe database performance and adjust as necessary.
shared_buffer
This memeory area is used by Postgres to do work. Default setting is very small and needs to be increase depending on available memory. Medium size data set and 256-512MB available RAM: 16-32MB (2048-4096) Large dataset and lots of available RAM (1-4GB): 64-256MB (8192-32768)
NOTE: Be aware that setting this value too high can have adverse effect. In general, this value should be no more than 10% of the available memory.
effective_cache_size
This parameter allows PostgreSQL to make best possible use of RAM available on your server. The objective is to set this value at the highest amount of RAM which will be available to PostgreSQL all the time.