• sql性能调优的注意项


    sql性能调优的注意项

    1. SELECT子句中避免使用 ‘ * ‘
    使用’*’ ,Oracle便会查询数据字典,依次解析各列名,应明确指定各列的名称,这样也便于理解
    2. 用>=替代>
    3.用EXISTS替代IN
    用IN将启用全表扫描,使用EXISTS将利用索引,提高查询效率。
    4.用NOT EXISTS替代NOT IN
    用NOT IN将启用全表扫描,使用NOT EXISTS将利用索引,提高查询效率。
    5.避免在索引列上使用IS NULL和IS NOT NULL
    6.用UNION-ALL 替换UNION
    7.通常情况下, 用UNION替换WHERE子句中的OR将会起到较好的效果. 对索引列使用OR将造成全表扫描.
    注意, 以上规则只针对多个索引列有效. 如果有column没有被索引, 查询效率可能会因为你没有选择OR而降低.
    8.用WHERE子句替换HAVING子句
    避免使用HAVING子句, HAVING 只会在检索出所有记录之后才对结果集进行过滤. 这个处理需要排序,总计等操作. 如果能通过WHERE子句限制记录的数目,那就能减少这方面的开销
    9.应尽量避免在 where 子句中使用 != 或 <> 操作符,否则将引擎放弃使用索引而进行全表扫描。
    提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉
    10.应尽量避免在 where 子句中使用 or 来连接条件,如果一个字段有索引,一个字段没有索引,将导致引擎放弃使用索引而进行全表扫描,如:
    select id from t where num=10 or Name =‘admin’
    可以这样查询:
    select id from t where num = 10 union all s

  • 相关阅读:
    文件的上传
    JSP基础知识
    AJAX
    Listener
    Filter(一)
    session
    网络爬虫(9)-xpath解析
    网络爬虫(8)-正则表达式
    网络爬虫(7)-beautifulSoup解析库
    网络爬虫(6)-Requests库
  • 原文地址:https://www.cnblogs.com/szls-666/p/12494171.html
Copyright © 2020-2023  润新知