`
hideto
  • 浏览: 2700529 次
  • 性别: 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 了吗?

相关推荐

    report net性能调优

    ### Cognos ReportNet 性能调优方案详解 #### 第一章 软件环境调优 在Cognos ReportNet系统中进行性能优化,首先需关注的是软件环境的配置,包括HTTP服务器(Web服务器)、应用服务器以及Cognos ReportNet自身的...

    Mysql数据库优化

    - **用途**: 查看最耗时或最频繁执行的SQL语句,通常用于性能调优。 - **4.4 INNODB_METRICS** - **用途**: 显示InnoDB引擎的各种统计信息,如缓存命中率等。 #### 五、MySQL系统配置参数 - **5.1 innodb_buffer_...

    Solr3.5开发应用指导

    #### 六、solr性能调优 - **6.1 SchemaDesignConsiderations** - **6.1.1 indexedfields**:索引字段的设置对性能有直接影响。 - **6.1.2 storedfields**:存储字段的选择会影响搜索结果的返回速度。 - **6.2 ...

    开源企业搜索引擎SOLR的应用教程

    1. **基于Lucene自封装实现站内搜索**:虽然此方案具有较高的灵活性,但考虑到开发工作量大且后期维护成本较高,一般不作为首选。 2. **调用第三方搜索引擎API**(如Google、Baidu):这种方式虽然简便快捷,但由于...

Global site tag (gtag.js) - Google Analytics