gpt4 book ai didi

sql - 如何加快 PostgreSQL 表中的行计数?

转载 作者:行者123 更新时间:2023-11-29 11:07:01 26 4
gpt4 key购买 nike

我们需要计算 PostgreSQL 表中的行数。在我们的例子中,不需要满足任何条件,如果行估计显着提高了查询速度,那将是完全可以接受的。

基本上,我们想要select count(id) from <table>尽可能快地运行,即使这意味着得不到准确的结果。

最佳答案

快速估算:

SELECT reltuples FROM pg_class WHERE relname = 'my_table';

不过,有几个注意事项。其一,relnamepg_class 中不一定是唯一的。在数据库的多个模式中可以有多个具有相同 relname 的表。明确一点:

SELECT reltuples::bigint FROM pg_class WHERE oid = 'my_schema.my_table'::regclass;

如果您不对表名进行模式限定,则转换为 regclass 会观察到当前的 search_path选择最佳匹配。如果该表在 search_path 中的任何模式中都不存在(或看不到),您会收到一条错误消息。参见 Object Identifier Types in the manual .

转换为 bigint 可以很好地格式化 real 数字,尤其是对于大数。

另外,reltuples 可能或多或少已经过时了。有一些方法可以在一定程度上弥补这一点。稍后使用新的和改进的选项查看此答案:

以及对 pg_stat_user_tables 的查询慢很多倍(尽管仍然比完整计数快得多),因为这是几个表的 View 。

关于sql - 如何加快 PostgreSQL 表中的行计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14570488/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com