微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

具有大量表格的postgresql的性能(EG:100万个表)?

在pgsql文件系统上每个表存储1个文件并在pg_catalog中搜索每个查询以进行查询计划时,单个pgsql数据库中的最大表数是多少,同时仍然保持良好的性能

EG:pgsql可以处理单个数据库中的100万个表吗?假设使用的文件系统是ext4,并且每个表包含的数据非常少,因此超量磁盘存储大小不是问题.问题实际上来自(1)文​​件系统上有100万个文件的影响,以及(2)pg_catalog中有100万个条目的影响.

从这个主题(2005年),http://postgresql.1045698.n5.nabble.com/GENERAL-Maximum-number-of-tables-per-database-and-slowness-td1853836.html – 下面说(但我现在还不知道这有多少仍然适用):

Benjamin arai写道:

What is the current maximum number of tables per database? Also,does
having more tables slow down performance in any way?

对于大多数情况,答案是否定的.但是,一旦你接近6位数
表计数,pg_catalog结果非常庞大.问题是
查询计划程序必须为每个查询检查pg_catalog以查看内容
索引可用,统计数据和价值分布是,
等,以建立最佳计划.在某些时候,真的很大
pg_catalog可能会让您的系统陷入困境.

William Yu< [隐藏电子邮件]>写道:

Benjamin arai wrote:

What is the current maximum number of tables per database? Also,does
having more tables slow down performance in any way?

  
  对于大多数情况,一旦你接近6位数
  表计数,pg_catalog结果非常庞大.

您还必须考虑具有数十的性能影响
数据库目录中的数千个文件.虽然有些新的
文件系统并没有特别担心,很多人都陷入困境
当目录中有超过几千个条目时查找.

解决方法

您不必在一个目录中保留一百万个文件.您可以使用 CREATE TABLESPACE来安排不同目录或不同磁盘上的空间.我对pg_catalog内部结构一无所知,但我可以想象它如何通过表空间缩小搜索范围,这可能会大大缩短搜索时间.

但这与一般文件系统中有一百万个文件或pg_catalog的实际(未想象)问题可能出现的问题有所不同.

应该很容易做一个简单的(也可能是误导性的)测试.使用您最喜欢的脚本语言创建一百万个表,每个表有五到六列.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐