0

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

这就是我的 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 秒以上的所有内容似乎都相当长,而且我认为我不能只计算之前的所有内容,因为之前解释过的许多过滤器选项(使用的方法和时间范围) .

EXPLAIN 给出了这些结果:

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

1 回答 1

1

创建一个复合索引(MainMethodId, startTime)

于 2013-04-04T07:26:40.753 回答