`
hideto
  • 浏览: 2651745 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SQL性能调优:2.1 排序的一般性调优

SQL 
阅读更多
影响排序速度的原因(从大到小)
1,选择的行数
2,ORDER BY子句里的列数
3,ORDER BY子句里的列的定义长度

增加行数会使得排序速度呈几何级数减慢
如果将排序的行数增加10倍,则排序的时间会变成20倍

尽可能的减少排序的行数

尽量减少排序的列数

适当减少排序的列的长度

最快的排序是对预先有一定排序的全部唯一的整数做升序排序

部分数据重复会减慢排序速度

预先排序会加快排序速度

列的定义的长度对排序会有影响

不同的DBMS对NULL的排序策略不同,不要写依赖于特殊NULL位置的排序

ORDER BY里使用表达式不是100%可移植的,但是ORDER BY LOWER(column1),ORDER BY SUBSTRING(column1 FROM 1 FOR 6),ORDER BY CAST(column1 AS CHAR...)这种可以加速排序

SELECT column1 FROM Table1会返回按column1排序的结果

如果column1不唯一,SELECT DISTINCT column1 FROM Table1会返回按column1排序的结果

省略ORDER BY是一个普遍的技巧,尽量不要给你的SQL加上ORDER BY
分享到:
评论
3 楼 hozaka 2008-08-06  
呵呵,那估计还有后续的文章,期待有更多值得分享的东西
2 楼 hideto 2008-08-06  
在这里还没有谈到索引的优化,这里只是针对SQL本身
1 楼 hozaka 2008-08-06  
对排序的性能影响最大的应该是索引。如果是行数,那么对于百万级的数据表就不能使用 ORDER BY 了吗?

相关推荐

Global site tag (gtag.js) - Google Analytics