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

  • 相关阅读:
    requirejs官网
    【PC端】jQuery+PHP实现浏览更多内容(jquery.more.js插件)
    自学Zabbix4.0之路
    自学Python-socket基础
    自学Aruba集锦
    自学zabbix集锦
    自学工业控制网络之路
    自学Linux命令行与Shell脚本之路
    自学Aruba之路
    自学Zabbix之路
  • 原文地址:https://www.cnblogs.com/quanweiru/p/3144261.html
Copyright © 2011-2022 走看看