gpt4 book ai didi

database - 在特定表空间中创建 postgres 模式

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:45 25 4
gpt4 key购买 nike

根据 Simple Configuration Recommendations对于 PostgreSQL,建议的设置最灵活和可管理环境的最佳实践是创建一个特定于应用程序的表空间,该表空间在/pgdata-app_tblspc 和“对于每个模式,应该至少有两个表空间。一个用于表,一个用于索引"

我能够创建这些挂载点和表空间,但想知道如何将模式分配给特定的表空间。据我所知,表空间通过 CREATE DATABASE ... TABLESPACE ... 命令与数据库 Hook ,但 CREATE SCHEMA 命令中没有 TABLESPACE 指令。

按照简单配置建议文档的逻辑,隐含的建议似乎是为每个应用程序创建一个数据库,每个数据库映射到两个表空间:一个用于数据,另一个用于索引。

但是,同一份文件继续说,特定于应用程序的数据库并不是在应用程序之间保持数据分离的首选方式。拥有一个具有多个模式的数据库是可行的方法。

我在这里错过了什么?感谢任何指点。

最佳答案

  • 为什么 CREATE SCHEMA 没有表空间子句?

    模式提供数据的逻辑分离,而表空间提供物理分离。只有保存数据的对象(如表和索引)在其 CREATE 语句中具有表空间子句。架构没有关联的数据文件。

    如果您希望不同模式中的表驻留在不同的表空间中,则必须向每个 CREATE TABLECREATE INDEX 语句添加表空间子句.

  • 您是否应该为每个应用程序使用两个表空间,一个用于表,一个用于索引?

    我会说这取决于您的性能要求和数据量。

    如果您正在处理数 TB 的数据仓库,并且希望通过将数据分布在不同的存储系统上来优化性能,那么使用表空间将是一个有趣的选择。

    对于一个较小的数据库,我认为这是不值得的,如果您购买足够的 RAM 以适应内存中的数据库,您会更好。

  • 不同的数据库或不同的模式是否是为不同应用程序分离数据的更好方法?

    如果应用程序需要访问彼此的数据,请将它们放在一个数据库的不同模式中。否则使用两个数据库,以确保它们不会弄乱彼此的数据。

总的来说,如果要限制表的增长或者表空间位于不同的存储系统上以进行负载分配,表空间是很好的选择。

关于database - 在特定表空间中创建 postgres 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40941580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com