在 'vanilla' PostgreSQL 12.7数据库中,我通常运行以下查询来了解具有 100+ 百万行的表中的估计行数:
----------------------------------------------------------
-- Return the estimated number of rows for the given table
----------------------------------------------------------
SELECT reltuples::bigint AS estimate_number_of_rows
FROM pg_class
WHERE oid = to_regclass('name_of_some_big_table');
这种类型的查询不适用于我们的多节点TimescaleDB安装上的分布式超表。
我检查了TimescaleDB API 参考,但找不到我要找的东西。
有没有这样一个简单的查询来快速返回分布式超表中的估计行数?
TimescaleDB 提供
approximate_row_count
功能,在此处的文档中进行了描述。准确度取决于上次运行 ANALYZE 或 VACUUM 的时间。对于您的表,查询将是: