假如我資料庫有兩條記錄的時間欄位是相等的,兩條記錄假設是A,B
那當我select order by 時間欄位的時候
選出來的一個表
表中 A,B的排列順序每次都是固定的嗎,還是說A,B 排列順序會隨機交換的?
uj5u.com熱心網友回復:
有索引還是堆?是堆按寫入順序,不是按索引排序uj5u.com熱心網友回復:
e.g.USE Test
GO
CREATE TABLE T1(A INT ,B INT);
INSERT INTO T1 VALUES(1,1),(2,2),(1,1)
SELECT * FROM dbo.T1
/*
A B
1 1
2 2
1 1
*/
CREATE INDEX IX_T1 ON dbo.T1(A,B);
SELECT * FROM dbo.T1
/*
A B
1 1
1 1
2 2
*/
uj5u.com熱心網友回復:
針對查詢T-SQL當沒有覆寫索引時會用聚集索引或堆uj5u.com熱心網友回復:
對于不能唯一的排序欄位, 建議增加主鍵一起排序, 確保每次查詢的位置固定。這對用戶查看分頁來說, 是非常有意義的。
uj5u.com熱心網友回復:
如果在 order by 沒有使用唯一鍵,那么結果一定是隨機的。可能你在開發環境運行了 10000 次,發現順序是一樣的,但是到生產環境運行某一段時間,就會出現不一致的情況。其原因就是使用不同的索引,就會影響這個顯示。
uj5u.com熱心網友回復:
+1
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/171591.html
標籤:基礎類
上一篇:如何在修改了一張表的資料后通過ID關聯將其他表的都改了(求SQL陳述句)
下一篇:MYSQL連不上為什么
