SQL优化--函数

      不在索引列上做任何操作:计算、函数、类型转换,这些操作会导致索引失效,进而进行全表扫描。

MIN()和MAX()

  添加索引可以优化MIN()和MAX()表达式。例如,要找到某一列的最小值,只需要查询对应B-Tree索引的最左端的记录即可。类似的,如果要查询列中的最大值,也只需要读取B-Tree索引的最后一条记录。

COUNT()

  COUNT()有两个不同的作用:

  1. 统计某个列值的数量,即统计某列值不为NULL的个数。
  2. 统计行数。

   当使用COUNT(*)时,统计的是行数,它会忽略所有的列而直接统计所有的行数。而在括号中指定了一个列的话,则统计的是这个列上值不为NULL的个数。

   存在大量数据的情况下,如果我们需要查询当前数据表中有多少条记录,这个要怎么做呢?一般会为数据表设计一个id字段,这个字段会随着数据的添加而自增,完全可以采用MAX()函数查询

SELECT COUNT(*) FROM labels;   //5.s
SELECT MAX(id) FROM labels;     //0.s

IS NULL 

  判断字段是否为空一般是不会应用索引的,因为索引是不索引空值

  推荐方案:用其它相同功能的操作运算代替,如:a is not null 改为 a>0 或a>’’等。不允许字段为空,而用一个缺省值代替空值。

       

        

  

 

posted on 2021-08-28 17:44  溪水静幽  阅读(93)  评论(0)    收藏  举报