【发布时间】:2013-05-10 11:17:20
【问题描述】:
我在运行此 SQL 时遇到问题:
我认为是index problem,但我不知道,因为我不制作这个数据库,我只是一个简单的程序员。
问题是,那个表有64260条记录,所以查询在执行的时候很疯狂,我不得不停止mysql重新运行,因为计算机被冻结了。
谢谢。
编辑:表架构
CREATE TABLE IF NOT EXISTS `value_magnitudes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`value` float DEFAULT NULL,
`magnitude_id` int(11) DEFAULT NULL,
`sdi_belongs_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`reading_date` datetime DEFAULT NULL,
`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1118402 ;
查询
select * from value_magnitudes
where id in
(
SELECT min(id)
FROM value_magnitudes
WHERE magnitude_id = 234
and date(reading_date) >= '2013-04-01'
group by date(reading_date)
)
EDIT2
【问题讨论】:
-
那么,您的问题是什么?
-
我需要改进该表,以便快速进行该查询,我不知道如何索引或索引什么,因为图片显示很多 null 并且它们不好。跨度>
标签: mysql sql query-optimization innodb