On Wed, 2020-02-19 at 05:42 +0100, Nicolas PARIS wrote: > I have both hdd and ssd disk on the postgres server. The cluster is > right now created on the hdd only. I am considering using a tablespace > to put some highly used postgres object on the ssd disk. Of course the > ssd is small compared to the hdd, and I need to choose carefully what > objects are stored on that side. > > I am wondering what kind of object (indexes, data) would benefit from > ssd. The database primary/foreign keys are highly used and there is > almost no sequencial scan. However the server has a large amount of ram > memory and I suspect all of those indexes are already cached in ram. > > I have read that tablespaces introduce overhead of maintenance and > introduce complication for replication. But on the other hand I have > this ssd disk ready for something. > > Any recommandation ? Put "pg_stat_statements" into "shared_preload_libraries" and restart the server. Set "track_io_timing" to on. Let your workload run for at least a day. Install the "pg_stat_statements" extension and run SELECT blk_read_time, query FROM pg_stat_statements ORDER BY blk_read_time DESC LIMIT 20; That will give you the 20 queries that spent the most time reading from I/O. Examine those queries with EXPLAIN (ANALYZE, BUFFERS) and see which tables or indexes cause the I/O. Then you have a list of candidates for the fast tablespace. Yours, Laurenz Albe -- Cybertec | https://www.cybertec-postgresql.com