1、100万多条数据,求count 速度超慢,请大神看下该怎么优化下
2、代码:
SELECT COUNT(*) FROM `score` INNER JOIN `users` ON ( `score`.`UID` = `users`.`UID` ) WHERE (`score`.`Score` >= 10) AND (`score`.`Score` <= 81);
3、索引
user表
走同样的路,发现不同的人生
count(id) 不要 count(*)
你是左联了1个表,建议给UID加索引
统计为什么要内联表呢,如果要分组使用group by UID不是更好么
语句简单,索引正常,不应该慢,可以通过explain + 语句 把执行计划贴出来看看。另外users表结构也贴下,如果UID是users表的主键的话,则可以去掉表的连接
没看出连表的必要性,你只要统计分数段的数据数量,没看出和user表有什么不关系,直接单表count就好了
count(id) 不要 count(*)
你是左联了1个表,建议给UID加索引
统计为什么要内联表呢,如果要分组使用group by UID不是更好么
语句简单,索引正常,不应该慢,可以通过explain + 语句 把执行计划贴出来看看。
另外users表结构也贴下,如果UID是users表的主键的话,则可以去掉表的连接
没看出连表的必要性,你只要统计分数段的数据数量,没看出和user表有什么不关系,直接单表count就好了