排序 Order

Database 最佳化: 排序 Order

可重新排序的資料表設計

方式 說明
使用 integer 欄位排序 將新增的資料排序間隔加大,當有需要插入排序時,可以將重新排序項目數字更新到未用的數字中間,只是若重新排序空間不夠時,必須要重新更新排序數字
使用 double 欄位排序 當要重新排序時,將要排序的資料順序指定到指定的精度後方,多加幾個小數位數,即可調整排序,但要小心若排序的欄位超過此精度,可能會有排序錯誤狀況發生,可以定期重新對資料重新編號排序
使用 string 欄位排序 當要重新排序時,將要排序的資料順序指定到指定的精度後方,多加幾個字串,即可調整排序,但要小心字串長度過長問題
限制排序欄位一次只能移動 1 個位置 將兩個項目排序數字交換即可,但使用體驗可能會不太好

資料重新排序策略

  1. 評估排序的項目數量有多少,避免超過可排序精度
  2. 每晚重新整理排序數字,讓精度重置,可以再繼續讓使用者重新排序
  3. 讓重新排序行為在離峰時間執行,提高高峰時間使用者存取效率

double 排序

項目 排序 double 欄位
item1 1.0
item2 1.01
item3 1.012
item4 1.0123
item5 1.01234
item6 1.012345

integer 排序

項目 排序 integer 欄位
item1 100
item2 200
item3 300
item4 400
item5 500
item6 600

string 排序

項目 排序 string 欄位
item1 a
item2 ab
item3 abc
item4 abcd
item5 abcde
item6 abcdef

參考資料