zoukankan      html  css  js  c++  java
  • sql优化(排序)

    很简单的sql:

    select * from (
    select * from issue.db_info
    order by creator_date
    ) where rownum<10

    执行计划如下:

     此查询需要12秒左右。

    创建索引

    create index idx_time on db_info(creator_date);

    sql改写如下:

    select * from (
    select * from issue.db_info
    where creator_date is not null
    order by creator_date
    ) where rownum<10

    毫秒级别。

    利用索引是有序的特点,减少结果集排序(sort order by);

    同时不要忘记索引是不包含null值的特点,改写sql( where creator_date is not null),

    如果查询条件中没有is not null的过滤条件,索引将会抑制;

    同时在优化取排名前几类似的sql时,注意执行计划中的count stopkey步骤,

    此步骤代表取到指定的数量后,停止后续的结果集获取,在某些情况下某些写法会导致该步骤消失,导致性能问题;

    如下:

    select t.*,rownum rn from (
    select * from issue.db_info
    where creator_date is not null
    order by creator_date
    ) t where rn>1 and rn<10

    执行计划如下:

  • 相关阅读:
    名词解释字节码
    一次Java解析数独的经历
    Java运行时数据区域
    java中的泛型类和泛型方法
    兼容的一些问题
    js中变量的作用域
    CSS3渐变
    Extjs散记
    Linux系统CentOS下mysql的安装日志
    修改自动亮度下背光和按键的亮度
  • 原文地址:https://www.cnblogs.com/muzisanshi/p/14969765.html
Copyright © 2011-2022 走看看