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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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_Database - Fatal编程技术网

为应用程序优化MySql选择

为应用程序优化MySql选择,mysql,database,Mysql,Database,Iam目前正在开发一个应用程序,该应用程序正在分析保存在数据库中的运行时值(日、月、使用方法等过滤器的平均值/中值)。然而,我也读到,一个用户友好的应用程序不应该在用户点击按钮后花费太长时间来显示数据,但是我想不出一种方法来快速查询大型数据库。我想写一些东西来存储每天所需的值,这样用户每次试图获取信息时就不需要再次计算这些值,但是有了这么多的过滤器,似乎可以存储很多信息,我想不出另外一种方法 以下是我的SQL查询的外观: SELECT p.processID, p.runtime, p.serv

Iam目前正在开发一个应用程序,该应用程序正在分析保存在数据库中的运行时值(日、月、使用方法等过滤器的平均值/中值)。然而,我也读到,一个用户友好的应用程序不应该在用户点击按钮后花费太长时间来显示数据,但是我想不出一种方法来快速查询大型数据库。我想写一些东西来存储每天所需的值,这样用户每次试图获取信息时就不需要再次计算这些值,但是有了这么多的过滤器,似乎可以存储很多信息,我想不出另外一种方法

以下是我的SQL查询的外观:

SELECT
p.processID, p.runtime, p.servername
FROM
public.process p
WHERE
(p.starttime BETWEEN 1356994800000 AND 1359414000000) AND
p.MainMethodID = '12';
编辑: MainMethodID是一个BIGINT,我已经为“starttime”和“MainMethodID”使用了索引。我的问题是,是否有一种方法可以让GUI应用程序更快地获得结果,因为5秒以上的时间似乎相当长,而且我认为我不能只计算之前的每一件事情,因为前面已经解释了很多过滤器选项(使用的方法和时间范围)

解释给出了这些结果:

1, 'SIMPLE', 'p', 'ref', 'MainMethodID,startTime', 'MainMethodID', '8', 'const', 28128, 'Using index condition; Using where'

(MainMethodId,startTime)

上创建一个复合索引,您的问题是…?请使用查询的
解释更新您的问题。这对您来说花费的时间太长(r taste;)的原因可能是索引问题。确保“starttime”和“MainMethodID”都有索引,这样where子句就可以从中获益。如果这没有帮助,也许可以为MainMethodID提供一个实数类型,而不是VARCHAR,我认为这也可以加快速度。
p.MainMethodID
是INT类型还是CHAR类型?28k记录并没有那么多,查询看起来应该相当快。单次执行该查询需要约5秒,还是循环中的该查询会导致多次执行该查询需要5秒?感谢您的回答,我刚刚尝试了这个方法,但似乎没有提高速度。可能sql查询不能太快,因为它需要超过28000行?