首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询执行速度PostgreSQL 8.1 vs PostgreSQL 9.2

查询执行速度PostgreSQL 8.1 vs PostgreSQL 9.2
EN

Stack Overflow用户
提问于 2013-11-14 14:42:14
回答 1查看 132关注 0票数 1

我的问题是一般性的,但我也有详细的例子来解释我的问题。我开发了一个基于Openjpa的带有持久层的webapp,并使用两个数据库对其进行了测试。一个是Postgres 8.1,另一个是Postgres 9.2。他们有相同的内容,同样的数据!当我部署我的webapp时一切都很好,但是当我使用PostgreSql 8.1时,我遇到了一个非常奇怪的问题:SELECT * FROM MEDICINE_CASE类型的选择查询在Postgres 9.2上最多需要10秒,在Postgres上超过40-50秒。这可能会在我的webapp上浪费很多好工作。MEDICINE_CASE表是一个包含20列和5000多个条目的大型表,它与其他表有7-8个外键关系。你能帮我找到这个问题发生的原因吗?如何在Postgres 8.1上解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-14 16:18:54

通常,您会对查询进行解释分析,但是对于一个简单的SELECT * FROM tablename,它不会显示多少。此外,在8.1中解释没有缓冲区选项。

您说它是一个包含5000个条目的大型表,但是按照今天的标准,它通常被认为非常小。然而,40秒的表格扫描是长的,表明它有很多内容。

因此,要么表包含巨大的内容,比如包含兆字节文本的列,要么包含大量的内容,或者由于缺乏维护而膨胀。或者两者都有。

如果您可以转储和重新加载您的8.1数据库(pg_dump到sql文件/ dropdb / createdb / reload sql文件),那么您将很容易知道性能差异是否真的取决于版本(可疑),还是取决于膨胀和碎片。

另外,您真正应该做的是放弃8.1,转而使用受支持的版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19980570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档