性能优化之MySQL优化(三)- count()和max()查询优化

一、max()查询优化

性能优化之MySQL优化(三)- count()和max()查询优化_第1张图片

        rows一行的值为16451说明需要查询16451行才能找到,当数据量很大的时候查询起来会很耗时,此时我们可以在payment_date列建立索引

性能优化之MySQL优化(三)- count()和max()查询优化_第2张图片

        这里最后加了个\G   能使输出按列打印

        此时直接就可以找到了,大大减少了查询时间,所以当使用max()函数时我们可以考虑使用索引


二、count()查询优化

         首先区分count(*)、count(列名:如id)、count(1)(count(*)、count(id)、count(1)

用count(*)  好呢 还是count(id)好, 还是count(1)好? 这两种的选择有时候执行结果是不一样的。
例如:
mysql>create table t(id int);
mysql>insert into t(id) values(1);
mysql>insert into t(id) values(2);
mysql>insert into t(id) values(null);
mysql>select * from t;
+------------+
|   id       |
+------------+
|    1       |
|    2       |
|    NULL|
mysql>select count(*),count(1),count(id) from t;

结果:count(*)=3条   ;  count(1)=3条  count(id)=2条

因为count(*) ,count(1)包括null值,count(id)忽略null值


性能优化之MySQL优化(三)- count()和max()查询优化_第3张图片


你可能感兴趣的:(MySQL)