According to PostgreSQL.org TODO: CLUSTER * -Make CLUSTER preserve recently-dead tuples per MVCC requirements * Automatically maintain clustering on a table This might require some background daemon to maintain clustering during periods of low usage. It might also require tables to be only partially filled for easier reorganization. Another idea would be to create a merged heap/index data file so an index lookup would automatically access the heap data too. A third idea would be to store heap rows in hashed groups, perhaps using a user-supplied hash function. http://archives.postgresql.org/pgsql-performance/2004-08/msg00349.php * %Add default clustering to system tables To do this, determine the ideal cluster index for each system table and set the cluster setting during initdb. * %Add VERBOSE option to report tables as they are processed, like VACUUM VERBOSE * -Add more logical syntax CLUSTER table USING index; support current syntax for backward compatibility The question is when these todo items are going to get addressed.