sql - MySQL innoDB: Long time of query execution -
i'm having troubles run sql:

i think it's index problem don't know because dind't make database , i'm simple programmer.
the problem is, table has 64260 records, query gets crazy when executing, have stop mysql , run again because computer frozen.
thanks.
edit: table schema
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 ; query
select * value_magnitudes id in ( select min(id) value_magnitudes magnitude_id = 234 , date(reading_date) >= '2013-04-01' group date(reading_date) ) edit2

first, add index on (magnitude_id, reading_date):
alter table add index magnitude_id__reading_date__ix -- name index (magnitude_id, reading_date) ; then try variation:
select vm.* value_magnitudes vm join ( select min(id) id value_magnitudes magnitude_id = 234 , reading_date >= '2013-04-01' -- changed index used group date(reading_date) ) vi on vi.id = vm.id ; the group date(reading_date) still need apply function selected (thorugh index) rows , cannot improved, unless follow @jurgen's advice , split column date , time columns.
Comments
Post a Comment