一、max()查询优化
rows一行的值为16451说明需要查询16451行才能找到,当数据量很大的时候查询起来会很耗时,此时我们可以在payment_date列建立索引
这里最后加了个\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值