Clean SQL:我是否应该引用我可以在我的数据库中查询的日期?
Clean SQL: Should I reference dates that I could ask for in my database?
我的数据库中有数百万行 SQLite Studio。
我想问一下我可以有几个月。
当我做我的请求时,它需要很长时间(5 分钟,比我一个月获取数据所用时间的一半还多!)
--How I call for months BTW --
SELECT DISTINCT strftime('%Y-%m', time_UTC) AS month FROM transacts ORDER BY month ASC;
如果我创建一个包含所有可用月份的 table 可能会非常快,但我听到脑海中有一个小声音告诉我:
YOU HAVE NOT TO MAKE A DATE TABLE
但我不记得它是否不好以及为什么。对我来说听起来不错。
请问你怎么看?
编辑:
如何在可用日期
上加快请求 SQL
您可以在表达式 strftime('%Y-%m', time_UTC)
上创建索引以获得更好的性能:
CREATE INDEX id_transacts_time ON transacts(strftime('%Y-%m', time_UTC));
检查demo使用索引的查询计划。
我的数据库中有数百万行 SQLite Studio。 我想问一下我可以有几个月。 当我做我的请求时,它需要很长时间(5 分钟,比我一个月获取数据所用时间的一半还多!)
--How I call for months BTW --
SELECT DISTINCT strftime('%Y-%m', time_UTC) AS month FROM transacts ORDER BY month ASC;
如果我创建一个包含所有可用月份的 table 可能会非常快,但我听到脑海中有一个小声音告诉我:
YOU HAVE NOT TO MAKE A DATE TABLE
但我不记得它是否不好以及为什么。对我来说听起来不错。 请问你怎么看?
编辑: 如何在可用日期
上加快请求 SQL您可以在表达式 strftime('%Y-%m', time_UTC)
上创建索引以获得更好的性能:
CREATE INDEX id_transacts_time ON transacts(strftime('%Y-%m', time_UTC));
检查demo使用索引的查询计划。