Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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 是否可以优化此SQL查询?_Mysql_Labview - Fatal编程技术网

Mysql 是否可以优化此SQL查询?

Mysql 是否可以优化此SQL查询?,mysql,labview,Mysql,Labview,全部, 我使用它作为select语句的条件 WHERE RecDate >= '%s' GROUP BY DATE(RecDate), HOUR(RecDate), MINUTE(RecDate), SECOND(RecDate) - (Second(RecDate) \% %d) LIMIT %d 当前此查询花费的时间有点太长。我在这里要做的是在某个日期后收集X行。我也不想要每一行,我想要每一个第n行,我相信这就是小组部分为我实现的目标 基本上,我有一组模拟信号,每行以1hz的频率采

全部,

我使用它作为select语句的条件

WHERE RecDate >= '%s' GROUP BY DATE(RecDate), HOUR(RecDate), MINUTE(RecDate), 
SECOND(RecDate) - (Second(RecDate) \% %d) LIMIT %d
当前此查询花费的时间有点太长。我在这里要做的是在某个日期后收集X行。我也不想要每一行,我想要每一个第n行,我相信这就是小组部分为我实现的目标

基本上,我有一组模拟信号,每行以1hz的频率采样并放入DB。我不想每次在图表上显示大约4-8小时的数据,但是把所有的点都拉回来是没有意义的

我正在尽可能多地利用数据库。有什么方法可以让这个查询运行得更快吗

问候,, 肯

这是我的表的create语句

DROP TABLE IF EXISTS `vdaq_6`.`readings`;
CREATE TABLE  `vdaq_6`.`readings` (
  `RigId` varchar(15) NOT NULL DEFAULT '',
  `Location` varchar(45) NOT NULL DEFAULT '',
  `RecDate` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
  `0123` double NOT NULL DEFAULT '0',
  `0124` double NOT NULL DEFAULT '0',
  `0118` double NOT NULL DEFAULT '0',
  `0114` double NOT NULL DEFAULT '0',
  `0126` double NOT NULL DEFAULT '0',
  `0121` double NOT NULL DEFAULT '0',
  `0141` double NOT NULL DEFAULT '0',
  `0137` double NOT NULL DEFAULT '0',
  `1129` double NOT NULL DEFAULT '0',
  `0130` double NOT NULL DEFAULT '0',
  `0108` double NOT NULL DEFAULT '0',
  `0113` double NOT NULL DEFAULT '0',
  `0110` double NOT NULL DEFAULT '0',
  `0116` double NOT NULL DEFAULT '0',
  `0120` double unsigned NOT NULL DEFAULT '0',
  `0112` double NOT NULL DEFAULT '0',
  `0128` double NOT NULL DEFAULT '0',
  `0423` double NOT NULL DEFAULT '0',
  PRIMARY KEY (`RigId`,`Location`,`RecDate`),
  KEY `Index_2` (`RecDate`),
  KEY `replication` (`UpdateCd`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='v2;InnoDB free: 523264 kB';
分组方式不会每N行一次;看起来它意味着每N行求和或平均,其中N可能是60的偶数除数

如果你真的想要每N行,那可能会快得多;用order by RecDate替换group by,并添加一个,其中secondRecDate\%d==0


但请向我们显示所选的实际字段。

示例数据和预期输出请