【发布时间】:2013-08-14 23:47:35
【问题描述】:
我有一张大约有 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
谢谢
【问题讨论】:
-
是2万还是2000万?请改正错字...
-
@PinnyM,是百万
-
全表扫描的时间似乎正常。
-
嗨@Vatev,可以吗?我在某处读到 mysql 对数百万条记录执行计算操作非常快。
标签: mysql performance database-design mysql-workbench