SQL性能调优:2.1 排序的一般性调优 博客分类: Database SQL
程序员文章站
2024-02-22 16:54:10
...
影响排序速度的原因(从大到小):
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
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