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

[b]影响排序速度的原因(从大到小)[/b]:
1,选择的行数
2,ORDER BY子句里的列数
3,ORDER BY子句里的列的定义长度

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

[b]尽可能的减少排序的行数[/b]

[b]尽量减少排序的列数[/b]

[b]适当减少排序的列的长度[/b]

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

[b]部分数据重复会减慢排序速度[/b]

[b]预先排序会加快排序速度[/b]

[b]列的定义的长度对排序会有影响[/b]

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

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

[b]SELECT column1 FROM Table1会返回按column1排序的结果[/b]

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

[b]省略ORDER BY是一个普遍的技巧,尽量不要给你的SQL加上ORDER BY[/b]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值