gpt4 book ai didi

postgresql - 为什么 Heroku 在传输后在 DB 中显示更多行?

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

我正在从 Heroku Bamboo 堆栈升级到 Cedar 堆栈。我正在关注这些 instructions用于升级和these instructions用于进行 Postgres 传输。

我拍摄了 DB_1 的快照,然后将其恢复到 DB_2。然后,为了检查一切是否顺利,我在两个应用程序上运行了 heroku pg:info,它显示 DB_1 有 7494 行,而 DB_2 有 7772 行。

为什么 DB_2 中还有将近 300 行,即使它是 DB_1 中数据的直接副本,没有任何更改?

我尝试了 heroku restart 但情况仍然存在。根据 pg:info DB_1 正在运行 Postgres 9.1.9 而 DB_2 正在运行 Postgres 9.2.4,我不知道这是否有区别。

我还尝试运行此 SQL 查询,它还报告了 DB_1 中与 DB_2 中不同的行数:

 SELECT sum(reltuples) from pg_class where relname IN (SELECT c.relname
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind = 'r'
AND n.nspname <> 'pg_catalog'
AND n.nspname <> 'information_schema'
AND n.nspname !~ '^pg_toast'
AND pg_catalog.pg_table_is_visible(c.oid))

最佳答案

Heroku 可能使用来自 PostgreSQL pg_stat 表的统计抽样来估计行数,因此它不会与数据库当前的确切行数完全匹配。

ANALYZE,可能在增加 default_statistics_target 之后,可能会改变报告的结果。

关于postgresql - 为什么 Heroku 在传输后在 DB 中显示更多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16721775/

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