Sql 度假酒店(重新排序)表数据

Sql 度假酒店(重新排序)表数据,sql,postgresql,Sql,Postgresql,使用PostgreSQL对表进行重新排序(诉诸)以使物理表示与逻辑表示最接近的最快方法是什么?插入顺序最终并不总是控制表中的顺序。表按其聚集索引排序(如果有)。如果它们没有,那么顺序在技术上是未定义的,尽管在很多情况下假设它们是按插入顺序排序可能是安全的,但这并不意味着它们将保持这种方式。由于缺少特定的排序,DB引擎可以自由地重新排序,以优化检索 如果要控制磁盘上的顺序,最好的方法是正确定义聚集索引。始终。用于按给定索引对表重新排序 (顺便说一句,)对数据进行排序并不意味着在查询中不再需要ord

使用PostgreSQL对表进行重新排序(诉诸)以使物理表示与逻辑表示最接近的最快方法是什么?

插入顺序最终并不总是控制表中的顺序。表按其聚集索引排序(如果有)。如果它们没有,那么顺序在技术上是未定义的,尽管在很多情况下假设它们是按插入顺序排序可能是安全的,但这并不意味着它们将保持这种方式。由于缺少特定的排序,DB引擎可以自由地重新排序,以优化检索

如果要控制磁盘上的顺序,最好的方法是正确定义聚集索引。始终。

用于按给定索引对表重新排序


(顺便说一句,)

对数据进行排序并不意味着在查询中不再需要
orderby
子句

这仅仅意味着逻辑顺序或数据可能与物理顺序匹配,并且以逻辑顺序检索数据(例如,从索引扫描)更有可能导致对表的顺序读取访问

请注意,
MySQL
PostgreSQL
都不能保证
INSERT…SELECT…ORDER BY
将导致数据在表中排序

要在
PostgreSQL
中对数据进行排序,应定义具有给定顺序的索引,并发出以下命令:

CLUSTER mytable USING myindex
这将重新生成表及其上定义的所有索引