【发布时间】:2020-05-18 17:44:55
【问题描述】:
要查找表 temperatures 中每小时存在的行数,我在我的 PostgreSQL 11.2 数据库上运行了一系列 SQL 查询,扩展名为 TimescaleDB 1.6.0。 temperatures 是 TimescaleDB 超表。
例如,
SELECT COUNT(*) FROM temperatures
WHERE DATE_PART('year', "timestamp") = 2020
AND DATE_PART('month', "timestamp") = 2
AND DATE_PART('day', "timestamp") = 2
AND DATE_PART('hour', "timestamp") = 0
AND DATE_PART('minute', "timestamp") = 0
问题:但是,这个查询似乎很慢(我认为),每次查询大约需要 6-8 秒,而这个数据库上没有运行其他查询。表 temperatures 包含 1150 万行。每小时大约有 100-2000 行。
寻找有关提高此类查询速度的建议。谢谢!
【问题讨论】:
标签: sql postgresql datetime count query-optimization