如果我在表上有一个聚簇索引,那么删除是否安全,如果我这样做,它是否会按照索引时的方式保持表的排序顺序?
答案 0 :(得分:3)
如果删除它是安全的(只要涉及数据完整性且索引不是UNIQUE
)。
当您删除CLUSTERED
索引时,该表将变为堆组织(即表行不再是B-Tree
的一部分),并且重建所有其他索引以引用{{1而不是RID
。
请注意,该表最初未“订购”。发出此查询时:
index value + uniquifier
,除非您使用SELECT *
FROM mytable
子句,否则不保证行包含在索引顺序中。
答案 1 :(得分:2)
技术上删除总是安全的,但是在设计/架构/性能方面是否有意义,我们不能说。
数据将保留在磁盘上的顺序,直到更新/插入发生,但请不要完全依赖它。只有在最外面的SELECT
中使用ORDER BY才能保证输出