我们的 PostgreSQL 数据库服务器中已经有超过一千张表了。我记得曾经读到过,一旦数据库达到一千张以上的表,就有一种方法可以加快数据库的速度,但我似乎无法在 Google 的网络上找到任何关于此内容的提及。任何帮助都很好。
谢谢
答案1
我不记得表数大于 1000 的具体内容,但您可能一直在考虑使用表空间将数据库对象/表分布在不同的卷上以提高性能?(例如,在不同的卷上写入较多的表与读取较多的表,或将不同组使用较多的表拆分到不同通道上的卷上)
此处介绍表空间在 postgres 文档中。
话虽如此,除非您需要解决特定的性能问题,否则我不会随意做出更改......
答案2
PostgreSQL 创建一个文件系统中每个表的文件; 根据您的底层文件系统,当任何进程(包括 PostgreSQL)读取目录元数据时,您最终会遇到性能问题。为了缓解这种情况,您需要创建许多不同的表空间并将不同的表放在不同的表空间中,以防止同一目录中有数千个文件。
答案3
您可能特别提到了有关在有大量表时调整 max_fsm_relations 的建议。但该要求已在 8.4 中被删除,并且现在会自动为您调整。