【发布时间】:2019-04-27 00:18:41
【问题描述】:
我在 MariaDB 10.1.26 上运行以下 SQL 语句,其中包含约 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;
我拥有的数据行越多,执行语句所需的时间就越长。似乎变量以某种方式改变了语句的行为。
这里有什么问题?
【问题讨论】:
-
为什么这个问题与stackoverflow.com/questions/53460954/… 有本质不同?
标签: mysql sql performance variables mariadb