zoukankan      html  css  js  c++  java
  • select count(1) 和 select count(*)的区别

    统计一个表T有多少行数据,通常写法是:

    查询A:select count(*) from T

    但也可以采用下面语句来查:

    查询B:select count(1) from T

    结果通常是一样的。那么二者区别在哪里呢?

    如果T表是个很大的表,那么查询速度将有显著的差异。实践中T表有4200万行,采用查询B,耗时3分多钟,而采用查询A,则耗时不到1秒。可见在大表的查询上必须非常谨慎。

    那么为什么查询A比查询B快呢?

    个人分析认为,查询A不需要过滤,直接用末行位置-首行位置/每行占用位置。而查询B,因为每一行要与常数1进行比对,不是NULL才统计,所以就慢了。

  • 相关阅读:
    HUD--2553 N皇后问题
    poj--2139
    poj--2236
    poj--2229
    poj--2376 Cleaning Shifts
    poj--3669
    poj--1979 Red and Black
    poj--1258
    经典DP问题--poj1088滑雪
    Poj 1041--欧拉回路
  • 原文地址:https://www.cnblogs.com/jackkwok/p/6296246.html
Copyright © 2011-2022 走看看