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

2024-07-04

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

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


对于一个非常快速的估计:

SELECT reltuples FROM pg_class WHERE relname = 'my_table';

不过,也有一些注意事项。其一,relname不一定是唯一的pg_class。可以有多个相同的表relname在数据库的多个模式中。明确地说:

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

如果您没有对表名进行架构限定,则会强制转换为regclass观察当前search_path https://stackoverflow.com/questions/9067335/how-to-create-table-inside-specific-schema-by-default-in-postgres/9067777#9067777选择最佳匹配。如果该表在任何模式中都不存在(或看不到)search_path您收到一条错误消息。看对象标识符类型在手册中 https://www.postgresql.org/docs/current/datatype-oid.html.

演员阵容bigint格式化real数字很​​好,特别是对于大数字。

Also, reltuples可能或多或少已经过时了。有一些方法可以在一定程度上弥补这一点。请参阅稍后的答案以及新的和改进的选项:

  • 快速发现 PostgreSQL 中表的行数的方法 https://stackoverflow.com/questions/7943233/fast-way-to-discover-the-row-count-of-a-table/7945274#7945274

并询问pg_stat_user_tables https://www.postgresql.org/docs/13/monitoring-stats.html#MONITORING-STATS-VIEWS-TABLE慢很多倍(尽管仍然比完整计数快得多),因为这是几个表的视图。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何加快 PostgreSQL 表中的行计数? 的相关文章

随机推荐

  • 致命错误:对布尔值调用成员函数 count()

    class db private pdo query error false results count 0 private function construct try host config get mysql host databas
  • C# 中的新类型定义

    我正在寻找定义新类型并在 C 中使用它的可能性 如下所示 类定义 public class Position public double180 Longitude get set double180 is a type within a r
  • 更改 NSSplitViewController 内的视图

    我正在尝试将我的 Objective C 和现在正在提高的 Swift 知识迁移到 Mac OS X 的应用程序 学习曲线陡峭 我正在尝试加载一个NSSplitViewController如果您愿意的话 根据 主视图 上按下的按钮 详细视图
  • AWS CodeDeploy yaml 文件错误

    我正在使用 AWS 代码部署到 Windows 环境来部署应用程序 我使用 apspec yml yaml 文件 当我部署应用程序时 出现以下错误 部署失败 因为在应用程序规范文件中输入了无效的版本值 确保您的 AppSpec 文件指定 0
  • 如何从python3中的单行输入读取整数数组

    我想从 python3 中的单行输入读取整数数组 例如 将此数组读取到变量 列表 1 3 5 7 9 我尝试过的 arr input split 但这不会将它们转换为整数 它创建字符串数组 arr input split for i val
  • 使用单独的线型绘制 ggplot2 中的缺失值

    我正在使用 ggplot2 创建线图 但缺少用 NaN 表示的数据 我的线图当前没有在缺失值之间添加任何线 但是 我想用虚线连接缺失的数据 而所有已知的数据用实线连接 这是我当前绘图的代码 其中包含我的数据框的一小部分和下面的绘图图像 ma
  • 同一个测功机可以运行多个进程吗?

    我正在创建运行多个微服务的小型应用程序 我希望这个应用程序 24 7 可用 所以免费的测功时间对我来说还不够 如果我升级到hobby我会得到的计划10 Process Types 我可以在每个进程 Web 上运行另一个微服务吗 或者 Her
  • 双因素认证系统

    我正在尝试使用 SMS 作为第二种身份验证方法来设计一个双因素身份验证系统 在 PHP 上 这是一个测试项目 任何人都可以帮助我设计这项服务吗 这将是一个基于网络的系统 下面是我到目前为止所做的 客户端输入用户名和密码后 网站将向我们的服务
  • 2 个站点共享一个 Web 应用程序池?什么时候应该使用这个?

    我只是做了一个简单的实验 我在本地 IIS 中创建了一个 Web 应用程序池 然后让 2 个网站指向同一个应用程序池 网站不是虚拟的 当然 它们在本地运行正常 我们什么时候应该开始使用共享应用程序池 在什么情况下您应该在两个网站之间共享应用
  • 微软Azure DDOS防护

    我正在 Microsoft Azure 中运行企业级应用程序 我想知道 Microsoft Azure 中 DDOS 投影的建议是什么 该文档明确指出该平台受到 DDOS 保护 但没有提供更多详细信息 我对Azure DDOS的理解是 如果
  • Android onBackPressed() 没有被调用?

    在我的 MainActivity 从 AppCompatActivity 扩展 中 我想重写 onBackPressed 方法 如下所示 Override public void onBackPressed Log d MainActivi
  • 构建并运行在 xcode 中禁用

    有一些应用程序显示构建并运行图标已禁用 这使我无法运行该应用程序 并非所有应用程序都会发生这种情况 但只有少数应用程序会发生这种情况 它主要发生在 facebook 应用程序和其他一些应用程序中 有人能知道可能是什么问题吗 我已经尝试了更改
  • PHP 从 MySQL 中选择日期字段为未来 7 天

    我有一个自动检查器 可以检查将在未来 7 天内过期的域名 并向客户发送电子邮件 我使用这个 SQL 查询 SELECT from domain names where status or status valid and expiry da
  • EditorFor/CheckBoxFor boolean 将 data-val-required 属性添加到 HTML,而不将 required 属性添加到模型

    我的模型类有一个没有必需属性的 bool 属性 public class Test public bool TestBool1 get set 然后在我的剃刀视图中 我使用 EditorFor CheckBoxFor 也会发生同样的情况 d
  • Swift - 可选 Void

    我正忙着使用NSURLProtocolClient的 URLProtocol 函数 welf client URLProtocol welf didReceiveResponse operation response cacheStorag
  • Jenkins 中的算法协商失败 SSH

    我正在尝试从 Jenkins ssh 到本地服务器 但抛出以下错误 SSH Exception Algorithm negotiation fail com jcraft jsch JSchException Algorithm negot
  • 解压jar到指定目录

    我想使用以下命令将我的罐子之一提取到指定目录jar命令行实用程序 如果我理解正确的话 C选项应该能解决问题 但是当我尝试时 jar xvf myJar jar C directoryToExtractTo 我从 jar 实用程序获取使用信息
  • 如何在 IE 受信任的根证书颁发机构存储中自动安装自签名证书

    我创建了一个自签名证书 但浏览器告诉我 此 CA 根证书不受信任 要启用信任 请在受信任的根证书颁发机构存储中安装此证书 我通过进入 IE gt Internet 选项 gt 内容 gt 证书 gt 等 我实际上必须导出自签名证书 然后将其
  • 为什么 UIPickerView 是半透明的

    Why UIPickerView 100不是不透明的吗 当我将文本颜色设置为白色并将 UIPickerView 放在红色背景上时 UIPickerView 项目有一个红白色文字颜色 我尝试使用自定义视图viewForRow 但还是没有效果
  • 如何加快 PostgreSQL 表中的行计数?

    我们需要计算 PostgreSQL 表中的行数 在我们的例子中 不需要满足任何条件 如果可以显着提高查询速度 那么获得行估计是完全可以接受的 基本上 我们想要select count id from table 尽可能快地运行 即使这意味着