$ip_sql=”select SUM(fen) as q from table where nl_ew=3 and date_format(nl_time,”%Y-%m-%d”)=curdate() “;
查询今天的积分统计…
为什么会超时……(以前还可以用..超过400万数据的时候 就不行了…)
select SUM(fen) as q from table 这个就不会超时
已经在nl_ew 跟nl_time 上做了索引….数据库引擎是InnoDB
数据大致在600W左右….
帮本人优化下..或出个主意…
查询今天的积分统计…
为什么会超时……(以前还可以用..超过400万数据的时候 就不行了…)
select SUM(fen) as q from table 这个就不会超时
已经在nl_ew 跟nl_time 上做了索引….数据库引擎是InnoDB
数据大致在600W左右….
帮本人优化下..或出个主意…
解决方案
10
date_format(nl_time,”%Y-%m-%d”) 这个转化不走索引了吧。
10
写成这样:and date_format(nl_time,”%Y-%m-%d”)=curdate() 确实是会用不上nl_time字段的索引的。
10
另外,你这个 nl_ew 索引,是只包含 nl_ew字段吗?
本人觉得 假如 你建的是一个 nl_ew 和 nl_time的联合索引,应该能快,当然,语句必须要改成:
and nl_time >= curdate() and nl_time < date_Add(curdate(),interval 1 day)
10
不要贴图,并不方便别人分析。