У меня следующий оператор SQL, работающий с MariaDB 10.1.26 с ~ 2.000 строк с мгновенными результатами.
select value, datetime from Schuppen
where (value = (select min(value) from Schuppen where (measure = 'temp')
and datetime between '2018-11-01 00:00:00' and '2018-11-02 00:00:00'))
and datetime between '2018-11-01 00:00:00' and '2018-11-02 00:00:00';
Когда я использую следующий оператор с переменными для полей даты и времени, выполнение занимает ~5,5 секунд
set @startdate = cast('2018-11-01 00:00:00' as datetime);
set @enddate = cast('2018-11-02 00:00:00' as datetime);
select value, datetime from Schuppen
where (value = (select min(value) from Schuppen where (measure = 'temp')
and datetime between @startdate and @enddate))
and datetime between @startdate and @enddate;
Чем больше у меня строк данных, тем больше времени требуется для выполнения инструкции.Похоже, переменные как-то меняют поведение оператора.
Что здесь не так?