`
退役的龙弟弟
  • 浏览: 445978 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MySQL查询优化

阅读更多

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`;

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics