RT,是不是后者更快一些?

解决方案 »

  1.   

    count(某一无空值列名)
    在主键,及有索引的列上效率比count(*)快
      

  2.   

    如果我的表是两个字体联合索引呢?要不要写count(列1,列2)??
      

  3.   

    不可一概而论,基本上如下:1 count(*)
    2 count(1)  count(常量)
    3 count(id) count(指定列)1,2结果相同,若 id有空值,则3与1,2的结果会不同. 当结果不同时比较性能无意义。当id无空值情况下,1,2,3相同。
    count(id),若id有索引,则索引扫描,若无,则表扫描
    count(*)或count(常量),若表有索引,走表的第一个索引位置列,若表无列含索引,则表扫描。所以大多情况下,count(*)的效率可能会高于count(id) (关健看表,及id上有无索引,及索引列的类型)
      

  4.   

    所以大多情况下,count(*)的效率可能会高于count(id) (关健看表,及id上有无索引,及索引列的类型)  总之关系不太大