zoukankan      html  css  js  c++  java
  • count(*),count(1)和count(主键) 区别

    看如下数据:

     1 SQL> select count(*) from ysgl_compile_reqsub;
     2 
     3   COUNT(*)
     4 ----------
     5    5288265
     6 
     7 已用时间:  00: 00: 07.51
     8 SQL> select count(1) from ysgl_compile_reqsub;
     9 
    10   COUNT(1)
    11 ----------
    12    5288265
    13 
    14 已用时间:  00: 00: 00.68
    15 SQL> select count(id) from ysgl_compile_reqsub;
    16 
    17  COUNT(ID)
    18 ----------
    19    5288265
    20 
    21 已用时间:  00: 00: 00.68
    22 SQL> select count(rowid) from ysgl_compile_reqsub;
    23 
    24 COUNT(ROWID)
    25 ------------
    26      5288265
    27 
    28 已用时间:  00: 00: 01.01
    29 SQL> select count(rowid) from ysgl_vdata_his;
    30 
    31 COUNT(ROWID)
    32 ------------
    33      5299458
    34 
    35 已用时间:  00: 00: 09.98
    36 SQL> select count(*) from ysgl_vdata_his;
    37 
    38   COUNT(*)
    39 ----------
    40    5299458
    41 
    42 已用时间:  00: 00: 00.93
    43 SQL> select count(1) from ysgl_vdata_his;
    44 
    45   COUNT(1)
    46 ----------
    47    5299458
    48 
    49 已用时间:  00: 00: 00.71
    50 SQL> select count(1) from ysgl_excelbasic;
    51 
    52   COUNT(1)
    53 ----------
    54    3755052
    55 
    56 已用时间:  00: 00: 04.60
    57 SQL> select count(*) from ysgl_excelbasic;
    58 
    59   COUNT(*)
    60 ----------
    61    3755052
    62 
    63 已用时间:  00: 00: 00.50
    64 SQL>

    不考虑Null的情况:
    count(1)和count(主键) 这两个只扫描主键Index就可以得到数据,
    count(*)是扫描表的。
    所以count(1)和count(主键)这两个效率高。
    还有一种写法是count(ROWID)这也是只扫描Index的,效率高。

    这个问题就是问你什么时候Oracle容易走表查询,什么时候Oracle容易走INDEX查询。
    实际应用中,你得看实际情况,没准这个表没有唯一键索引呢?在CBO(ORACLE提供的一种SQL优化器)的情况下,统计情报不准确呢?

    这种问题会出现好多版本的回答。测试环境不同结果也不一样,你随便键个表,看看它们的执行计划,就能看出他们的区别了。

  • 相关阅读:
    UIAutomation识别UI元素
    pycharm调试bug Process finished with exit code 1073740791 (0xC0000409)
    adb常用命令
    win10 安装Pytorch GPU版+CUDA+cuDNN
    AD 端口相关
    sqlserver数据库排序规则
    sqlserver数据库备份的存储过程
    专有软件不是唯一!试试54款开源服务器软件[转]
    AD管理维护与排错工具
    LDAP over SSL (LDAPS) Certificate
  • 原文地址:https://www.cnblogs.com/byvar/p/3794765.html
Copyright © 2011-2022 走看看