我正在寻找一种方法来近似分区表中的行数。由于数据的大小,我想避免使用count(*)。我试着用这个:

SELECT reltuples FROM pg_class WHERE relname = 'my_table_name';

但它总是返回zero。我想是因为那张桌子被分割了。
是否有方法使用pg_class/pg_inherits来获取所有分区中的行数?
任何想法都非常感谢!

最佳答案

简单地说,如果子分区遵循命名方案:

SELECT schemaname,relname,n_live_tup
FROM pg_stat_user_tables
where relname like 'my_table_%'
ORDER BY relname DESC ;

07-24 14:19