sql - MySQL innoDB: Long time of query execution -


i'm having troubles run sql:

enter image description here

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

enter image description here

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

Popular posts from this blog

c# - Operator '==' incompatible with operand types 'Guid' and 'Guid' using DynamicExpression.ParseLambda<T, bool> -