【发布时间】:2021-08-29 08:20:08
【问题描述】:
我有一个使用 TimescaleDB 设置的交换蜡烛数据的超表。
-
TimescaleDB 官方镜像
timescale/timescaledb:latest-pg12使用 Docker 设置并运行,带有确切的版本字符串starting PostgreSQL 12.6 on x86_64-pc-linux-musl, compiled by gcc (Alpine 10.2.1_pre1) 10.2.1 20201203, 64-bit -
Python 3 客户端
-
该表有 5 个连续的聚合视图 set up like here 和大约 15 个列
运行以下查询很慢(使用 SQLAlchemy 生成计数查询):
SELECT count(*) AS count_1
FROM (SELECT my_hypertable.timestamp AS my_hypertable_timestamp
FROM my_hypertable) AS anon_1
在一个强大的服务器上计算一个有 14,000 行的超表需要 7 秒,根据 Python 脚本测量。而对于普通表,查询时间似乎不到 10 毫秒。这使得超表上的COUNT(*) 在大多数情况下都无法使用。
-
TimescaleDB 架构中是否有什么东西让
COUNT(*)特别慢? -
如果我的设置有问题,请指点或猜测可能是什么或如何进一步诊断
-
如果由于架构原因 count() 会非常慢,有什么建议可以解决这个问题 - 还是应该完全避免?
【问题讨论】:
标签: timescaledb