Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql查询执行速度非常慢_Mysql_Performance_Database Design_Mysql Workbench - Fatal编程技术网

Mysql查询执行速度非常慢

Mysql查询执行速度非常慢,mysql,performance,database-design,mysql-workbench,Mysql,Performance,Database Design,Mysql Workbench,我有一个大约有2000万条记录的表,我将对该表的一些字段进行简单计算。但是获取数据需要花费很多时间。我在考虑所有的记录,这就是为什么图片中没有索引。 让我解释一下: Table : UserLoginDet ------------ LoginID INT UserID INT Date DATETIME SpentTime INT 现在,我希望我的仪表板像这样的总数 SELECT COUNT(1) NoOfLogins, DISTINCT(Use

我有一个大约有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

谢谢

您可以运行
解释选择计数(1)NoOfLogins、DISTINCT(UserID)NoOfUsers、SUM(SpentTime)UsedTime
查看索引使用情况的详细报告。

是2万还是2000万?请纠正输入错误…@PinnyM,这是第一百万次了。全表扫描似乎很正常。嗨@Vatev,可以吗?我在某处读到mysql对数百万条记录执行计算操作的速度非常快。Hi@Paolo casciello,我使用explain进行了检查,这个查询使用主键进行搜索。并在“额外”中显示“使用位置”。可以吗?@ManishSapkal你能把解释的输出添加到你原来的帖子中吗?嗨@Paolo casciello,我已经把解释的输出添加到我的帖子中了post@ManishSapkal是的,它使用主键。所以这是一个理想的场景。是的,时间似乎很正常。还取决于系统(操作系统、cpu、内存、缓存状态、磁盘)