CLUSTER indexname ON tablename
The name of the index to use in clustering.
The name of the table you wish to cluster.
The message returned when a table is successfully clustered.
The error returned if you attempt to cluster an index indexname which is not placed on the specified table (tablename).
The error returned if the specified index (indexname) cannot be found in the connected database.
The error returned if the specified table (tablename) cannot be found in the connected database.
The error returned if the specified table (tablename) is inherited by another table (child_table).
Use the CLUSTER command to cluster a table on a specific index. The table (identified by the tablename parameter) must already, exist and the index (identified by the indexname parameter) must exist, and be placed on the table.
During clustering, a table is reordered for performance in an arrangement based on the specified index. A cluster is a one-time operation upon a table; to recluster a table, you must execute the command again.
When a cluster is created, the rows of the table are actually copied to a temporary table according to an order derived from the specified index. That temporary table is then renamed to the original table name. Because of this, all permissions and other indices are lost when clustering is performed.
The following example clusters the subjects table on the basis of its subjects_pkey index:
booktown=# CLUSTER subjects_ pkey ON subjects; CLUSTER