歌词: 关键字
您的位置:近况首页全部文字 → SQl语句的效率问题
金电网相片

金电网

主页留言

SQl语句的效率问题

人气:
日期:2016/11/19 12:46:00
关键词:SQl语句的效率问题

SQL语句效率  

        1. SQL优化的原则是:将一次操作需要读取的BLOCK数减到最低,即在最短的时间达到最大的数据吞吐量。   
        调整不良SQL通常可以从以下几点切入:   
        1) 检查不良的SQL,考虑其写法是否还有可优化内容   
        2) 检查子查询   考虑SQL子查询是否可以用简单连接的方式进行重新书写   
        3) 检查优化索引的使用   
        4) 考虑数据库的优化器   
          
        2. 避免出现SELECT   *   FROM   table     语句,要明确查出的字段。     
          
        3. 在一个SQL语句中,如果一个where条件过滤的数据库记录越多,定位越准确,则该where条件越应该前移。   
          
        4. 查询时尽可能使用索引覆盖。即对SELECT的字段建立复合索引,这样查询时只进行索引扫描,不读取数据块。   
          
        5. 在判断有无符合条件的记录时建议不要用SELECT   COUNT   (*)和select   top   1   语句。   
          
        6. 使用内层限定原则,在拼写SQL语句时,将查询条件分解、分类,并尽量在SQL语句的最里层进行限定,以减少数据的处理量。   
          
        7. 应绝对避免在order   by子句中使用表达式。   
          
        8. 如果需要从关联表读数据,关联的表一般不要超过7个。   
          
        9. 小心使用   IN   和   OR,需要注意In集合中的数据量。建议集合中的数据不超过200个。   
          
        10. <>   用   <   、   >   代替,>用>=代替,<用<=代替,这样可以有效的利用索引。   
          
        11. 在查询时尽量减少对多余数据的读取包括多余的列与多余的行。   
          
        12. 对于复合索引要注意,例如在建立复合索引时列的顺序是F1,F2,F3,则在where或order  by子句中这些字段出现的顺序要与建立索引时的字段顺序一致,且必须包含第一列。只能是F1或F1,F2或F1,F2,F3。否则不会用到该索引。 

 

      13. 多表关联查询时,写法必须遵循以下原则,这样做有利于建立索引,提高查询效率。格式如下

      select   sum(table1.je) from   table1   table1,     table2   table2,     table3     table3   where 
      (table1的等值条件(=))   and   (table1的非等值条件)   and   (table2与table1的关联条件)   
      and   (table2的等值条件)   and   (table2的非等值条件)   and   (table3与table2的关联条件)   
      and   (table3的等值条件)   and   (table3的非等值条件)。   
       注:关于多表查询时from     后面表的出现顺序对效率的影响还有待研究。   
          
       14. 子查询问题。对于能用连接方式或者视图方式实现的功能,不要用子查询
       例如:
      

Sql代码  SQl语句的效率问题
  1. select   name   from   customer    
  2. where   customer_id   in   (     
出处:词曲网 作品发布:金电网
《SQl语句的效率问题》有关声明
评论人 评论内容摘要(共 0 条,查看完整内容) 得分 0 发表时间