mysql 查询优化 ?

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表
图片描述

阅读 4.2k
5 个回答

count(id) 不要 count(*)

你是左联了1个表,建议给UID加索引

统计为什么要内联表呢,如果要分组使用group by UID不是更好么

语句简单,索引正常,不应该慢,可以通过explain + 语句 把执行计划贴出来看看。
另外users表结构也贴下,如果UID是users表的主键的话,则可以去掉表的连接

没看出连表的必要性,你只要统计分数段的数据数量,没看出和user表有什么不关系,直接单表count就好了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题