1、count优化
MyIsam存储引擎的count函数速度很快,前提是没有任何的where语句,这是因为不用实际去计算表的行数,而是通过存储引擎的特性直接得到这个值。如过后面有where语句,和其他的存储引擎没有区别。
innodb存储器count查询会根据表行数的增加,时间不断增加。
下面是一个优化的例子。(前提是使用myisam存储引擎)
题:查出所有id>5的记录数
优化前:
select count(*) from city where id >5;
优化后:
select (select count(*) from city) - count(*) from city where id <=5;
2.使用count和sum可以查询一列中为每个特定值的的行数
SELECT SUM(FLD_CLI_TASK_NAME='filetaskforDB'),SUM(`FLD_FGAP_TASK_NAME`='7128fileclien') FROM `tbl_fgap_file_flow`;
使用count函数得到相同结果
SELECT COUNT(FLD_CLI_TASK_NAME='filetaskforDB') AS blue,COUNT(`FLD_FGAP_TASK_NAME`='7128fileclien') AS red FROM `tbl_fgap_file_flow`;