排序 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

参考资料