0
全部,可以优化此SQL查询吗?
我用这个作为我的select语句的条件。
WHERE RecDate >= '%s' GROUP BY DATE(RecDate), HOUR(RecDate), MINUTE(RecDate),
SECOND(RecDate) - (Second(RecDate) \% %d) LIMIT %d
当前此查询需要太长时间。我在这里要做的是在某个日期之后收集X行的数量。我也不想每一排,我想每第N排,这是GROUP部分为我所相信的。
基本上我有一堆模拟信号被采样并放入1hz(每行)的数据库中。我不想在图形上显示每次约4-8小时的数据,但它不会把所有的观点都拿回来是没有意义的。
我想尽可能地利用数据库。有什么办法可以让这个查询运行得更快吗?
问候, 肯
下面是我的表创建语句。
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';
示例数据和预期输出pls – 2010-08-02 01:47:30