我用下面的查询平均每分钟大约 1000 次查询。大多数查询将保持不变,但日期、小时、分钟和 itemName(在本例中为 2021-06-02, 10, 30 和“football”)。我已经切换了各个部分,这似乎是性能的最佳顺序。我怀疑使用不同函数的查询可能更适合性能,但我还没有弄清楚。
SELECT DatetimeRecorded, itemName, field1, field2, field3
FROM StoreData.data
WHERE DatetimeRecorded BETWEEN '2021-06-02' - INTERVAL 30 DAY
AND '2021-06-02' - INTERVAL 1 DAY
AND itemName = 'football'
and HOUR(DatetimeRecorded) = 10
and MINUTE(DatetimeRecorded) <= 30
Run Code Online (Sandbox Code Playgroud)
在示例时间限制下,数据库中“足球”的频率每天只会出现一次,这意味着此查询和其他类似查询将返回最多 30 行,即每天 1 行。
以更易读的格式,我希望更有效地做的是“选择 2021-06-02 之前的 30 天,其中时间在 10:00 到 10:30 之间,项目是足球”
附加信息
这是输出显示创建表
| Data | CREATE TABLE …Run Code Online (Sandbox Code Playgroud)