arc*_*eta 5 filesystems postgresql max ext4
在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写道:
每个数据库当前的最大表数是多少?此外,是否有更多的表以任何方式降低性能?
对于大多数情况,答案是否定的.然而,一旦你接近6个数字表计数,pg_catalog最终会非常庞大.问题是查询计划程序必须为每个查询检查pg_catalog以查看可用的索引,统计信息和值分布是什么等,以便构建最佳计划.在某些时候,一个非常大的pg_catalog会开始让你的系统陷入困境.
...
William Yu <[hidden email]>写道:
Benjamin Arai写道:
每个数据库当前的最大表数是多少?此外,是否有更多的表以任何方式降低性能?
对于大多数情况,答案是否定的.然而,一旦你接近6个数字表计数,pg_catalog最终会非常庞大.
您还必须考虑在数据库目录中包含数万个文件的性能影响.虽然一些较新的文件系统并没有特别担心,但是当目录中有超过几千个条目时,很多人都会陷入查找困境.
您不必在一个目录中保存一百万个文件。您可以用来CREATE TABLESPACE在不同的目录或不同的磁盘上安排空间。我对 pg_catalog 内部结构一无所知,但我可以想象它如何首先通过表空间缩小搜索范围,这可以显着减少搜索时间。
但这与文件系统中通常存在一百万个文件可能出现的问题不同,或者与 pg_catalog 的实际(不是想象的)问题不同。
应该很容易进行简单(并且可能具有误导性)的测试。使用您最喜欢的脚本语言创建一百万个表,每个表都有五到六列。
| 归档时间: |
|
| 查看次数: |
3138 次 |
| 最近记录: |