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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值