zoukankan      html  css  js  c++  java
  • Oracle > count(*) / count(0) / count(1) | order by 1, 2

    select count(*), select count(0), select count(1) from table

    在统计表的行数时候,经常用到 select count(*)

    然而对于行数很多的大表,这样的查询速度将会很慢。因为这样的查询对表的每一行都会进行每个列的扫描。

    比较快的办法是 select count(0), 这样每一行就只是扫描行头信息。

    以上2种都是进行的全表扫描。

    更快的是 select count(唯一索引列) 这样的查询会走索引。

     

    WITH t

         AS (SELECT NULL a, NULL b FROM DUAL

             UNION ALL

             SELECT 1, NULL FROM DUAL

             UNION ALL

             SELECT NULL, 1 FROM DUAL)

    SELECT COUNT (*)

         , COUNT (0)

         , COUNT (1)

         , COUNT (a)

         , COUNT (b)

      FROM t;

    clip_image001

     

     

    WITH t

         AS (SELECT NULL a, NULL b FROM DUAL

             UNION ALL

             SELECT 1, NULL FROM DUAL

             UNION ALL

             SELECT 2, 2 FROM DUAL

             UNION ALL

             SELECT NULL, 1 FROM DUAL)

             select a, b

             from t

             order by 2; --整个表中的第2

    clip_image002

  • 相关阅读:
    java-date和Calendar运用
    java-date类使用练习(1)
    java-正则表达式
    JAVA-String类的应用
    java-重写equals
    java-抽象类、接口等实际应用 (酒店小案例)
    fuzz系列之libfuzzer
    ZAB协议(转)
    Paxos(转自wiki)
    Zookeeper简介和安装使用
  • 原文地址:https://www.cnblogs.com/quanweiru/p/3144261.html
Copyright © 2011-2022 走看看