度假村(重新订购)表数据

时间:2010-05-26 22:51:22

标签: sql postgresql

使用PostgreSQL重新排序(求助)表以使物理表示与逻辑最匹配的最快方法是什么?

3 个答案:

答案 0 :(得分:4)

订购数据并不意味着您的查询中不再需要ORDER BY子句。

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

请注意,MySQLPostgreSQL都不保证INSERT … SELECT … ORDER BY会导致数据在表格中排序。

要在PostgreSQL中订购数据,您应该使用给定的顺序定义索引并发出以下命令:

CLUSTER mytable USING myindex

这将重建表及其上定义的所有索引。

答案 1 :(得分:1)

插入顺序最终并不总是控制表中的顺序。表按其聚簇索引排序(如果有)。如果他们没有,那么订单在技术上是未定义的,尽管在许多情况下假设他们按照插入顺序排序可能是安全的,但这并不意味着他们会保持这种状态。由于缺乏特定的排序,数据库引擎可以自由重新排序,因为它认为适合优化检索。

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

答案 2 :(得分:1)

使用CLUSTER按给定索引重新排序表。

(BTW,ALTER TABLE ... ORDER BY ...