PostgreSQL大量的表

我们在PostgreSQL数据库服务器上有超过一千个表。 我记得读到有一种方法可以在数据库达到一千多个表格的时候加快数据库的速度,但是我似乎无法在Google上find任何关于这个数据库的信息。 你能帮忙的话,我会很高兴。

谢谢

我不记得特定于大于1000的表计数的任何事情,但是您可能一直在考虑使用表空间来将db对象/表分布到不同的卷上以提高性能? (也就是说,对于读取较多的表而言,在不同的卷上写入的表会更多,或者在不同通道上的卷上分割不同的重度使用表)

表空间在这里覆盖 postgres文档。

除非有特殊的性能问题需要解决,否则我不会随意进行修改。

PostgreSQL 为每个表在文件系统中创build一个文件 ; 取决于您的基础文件系统,当任何进程(包括PostgreSQL)读取目录元数据时,最终会遇到性能问题。 为了减轻这一点,你需要创build一些不同的表空间,并将不同的表放在不同的表空间中,以防止在同一个目录中有成千上万个文件。

读一下关于CREATE TABLESPACE和ALTER TABLE命令将表移动到给定的表空间可能会有帮助。

当你有很多表时,你可能会特别提到关于调整max_fsm_relations的build议。 但是这个要求在8.4中被删除了,现在它已经自动调整了。