gpt4 book ai didi

mysql - 我可以通过时间戳加快相当简单的选择查询吗?

转载 作者:行者123 更新时间:2023-11-29 04:06:47 25 4
gpt4 key购买 nike

我认为这是一个非常基本的查询,但它需要很长时间才能运行。

我的 MySQL 服务器的细节:

  • Ubuntu Server 14.04,64 位,作为 VMWare Workstation 虚拟机运行
  • 2GB RAM 专用于 VM

我正在运行查询的表有 33 列:时间戳和 32 列带有井名(例如 LEW91_4)。当前表中大约有 250 万条记录。井列的数据类型为 float 。索引是:

  • 列:ndx,索引:PRIMARY
  • 列:t_stamp,索引:C1_Flowst_stampndx

查询:

    SELECT 
DATE_FORMAT(t_stamp, '%m/%d/%Y %h:00 %p') as 'Date',
AVG(LEW91_1R97) as 'LEW91_1R97',
AVG(LEW91_2R97) as 'LEW91_2R97',
AVG(LEW91_3R97) as 'LEW91_3R97',
AVG(LEW91_4) as 'LEW91_4',
AVG(LEW97_1) as 'LEW97_1',
AVG(LEW97_3) as 'LEW97_3',
AVG(LEW97_4) as 'LEW97_4',
AVG(LEW97_6) as 'LEW97_6',
AVG(LEW97_7) as 'LEW97_7',
AVG(LEW97_8) as 'LEW97_8',
AVG(LEW97_12) as 'LEW97_12'

FROM C1_Flows
WHERE DAY(t_stamp) = 28
AND MONTH(t_stamp) = 09
AND YEAR(t_stamp) = 2015
GROUP BY DAY(t_stamp), HOUR(t_stamp)

当我从 MySQL Workbench 运行该查询时,它目前大约需要 11 秒才能运行。当它从我用来开发 HMI 的基于 Java 的界面中运行时,它超时并出现特定错误“读取超时”。

我在类似的服务器上运行过更复杂的查询(即连接、联合、if 语句等),它们运行得比这一个更快。有什么方法可以加快速度,还是我遗漏了一些明显的东西?

最佳答案

不要使用

WHERE DAY(t_stamp) = 28
AND MONTH(t_stamp) = 09
AND YEAR(t_stamp) = 2015

改用

WHERE t_stamp >= '2015-09-28' AND t_stamp < '2015-09-29'

WHERE t_stamp >= '2015-09-28' AND t_stamp < ADDDATE('2015-09-28', INTERVAL 1 DAY)

并且在 t_stamp 上有一个索引。按照你写的方式,每条记录都需要在where子句上计算,不能使用索引。

关于mysql - 我可以通过时间戳加快相当简单的选择查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32875450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com