我有一个大约有20M记录的表,我将在该表的某些字段上进行简单计算。但它需要花费很多时间来获取数据。我正在考虑所有记录,这就是为什么图片中没有索引。 让我解释一下:
Table : UserLoginDet
------------
LoginID INT
UserID INT
Date DATETIME
SpentTime INT
现在我想要这样的仪表板总数。
SELECT COUNT(1) NoOfLogins, DISTINCT(UserID) NoOfUsers, SUM(SpentTime) UsedTime;
此查询需要5-6秒才能执行。是不是没有问题。我认为只有20M的记录非常慢。我该怎么办?
已编辑: 我的解释报告:
id Select_type table type possible_key key key_len ref rows Extra
-- ----------- ----- ---- ------------ ------- ------- --- ------ ------
1 PRIMARY UserLoginDet range PRIMARY PRIMARY 3 797143 Using where
谢谢
答案 0 :(得分:0)
您可以运行EXPLAIN SELECT COUNT(1) NoOfLogins, DISTINCT(UserID) NoOfUsers, SUM(SpentTime) UsedTime;
查看索引使用情况的详细报告。