我有非常简单的查询来获取 MIN 和 MAX 值,它看起来像:
SELECT MAX(value_avg)
, MIN(value_avg)
FROM value_data
WHERE value_id = 769
AND time_id BETWEEN 214000 AND 219760;
这里是 value_data 表的架构:
CREATE TABLE `value_data` (
`value_id` int(11) NOT NULL,
`time_id` bigint(20) NOT NULL,
`value_min` float DEFAULT NULL,
`value_avg` float DEFAULT NULL,
`value_max` float DEFAULT NULL,
KEY `idx_vdata_vid` (`value_id`),
KEY `idx_vdata_tid` (`time_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
如您所见,查询和表很简单,我在这里没有发现任何问题,但是当我执行此查询时,大约需要 9 秒才能获取数据。我还对这个查询进行了分析,99% 的时间是“发送数据”。
这张表真的很大,重约 2 GB,但有问题吗?我觉得这张桌子不会太大,肯定是别的东西……