我有一张约有2000万条记录的表,我将对该表的某些字段进行简单计算。但是,获取数据需要花费大量时间。我正在考虑所有记录,这就是为什么图片中没有索引的原因。
让我解释 :
Table : UserLoginDet
------------
LoginID INT
UserID INT
Date DATETIME
SpentTime INT
现在,我想要这样的仪表板总计。
SELECT COUNT(1) NoOfLogins, DISTINCT(UserID) NoOfUsers, SUM(SpentTime) UsedTime;
此查询需要5到6秒钟才能执行。可以吗?我认为仅2000万条记录的速度非常慢。我该怎么办?
编辑:
我的解释报告:
id Select_type table type possible_key key key_len ref rows Extra
-- ----------- ----- ---- ------------ ------- ------- --- ------ ------
1 PRIMARY UserLoginDet range PRIMARY PRIMARY 3 797143 Using where
谢谢
最佳答案
您可以运行EXPLAIN SELECT COUNT(1) NoOfLogins, DISTINCT(UserID) NoOfUsers, SUM(SpentTime) UsedTime;
以查看有关索引使用情况的详细报告。
关于mysql - MySQL查询执行非常慢,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18207774/