PostgreSQL 中的模式是物理对象吗?
Are schemas in PostgreSQL physical objects?
我使用 PostgreSQL 中的模式来组织我庞大的会计数据库。每年年底,我都会通过为下一年创建新模式来进行协调。
新模式的文件与旧模式在物理上是分开的吗?还是所有的schema一起存储在硬盘上?
这对我来说很重要,因为在每年年底,我都有包含数百万条记录的巨大表格,这意味着我很快就会调用大量查询(当我决定选择时我没有计划PostgreSQL).
模式是命名空间,因此它们是“逻辑”事物,而不是物理事物。
As documented in the manual 每个 table 表示为 数据库对应的目录中的一个(或多个文件) 创建 table in. 名称空间(模式)未反映在物理数据库布局中。
一般来说,您一开始不应该关心数据库的存储,您的 SQL 查询将不知道实际数据存储在哪里。
如今,“数百万”行并不被认为是“巨大的”。如果你在性能问题上做 运行,你将使用例如调整你的查询索引或将其重写为更有效的解决方案。在极少数情况下,partitioning 一个 table 可以帮助处理非常大的 tables - 但我们谈论的是数亿甚至数十亿行。对于中小型 tables,分区通常对性能没有帮助。
我使用 PostgreSQL 中的模式来组织我庞大的会计数据库。每年年底,我都会通过为下一年创建新模式来进行协调。
新模式的文件与旧模式在物理上是分开的吗?还是所有的schema一起存储在硬盘上?
这对我来说很重要,因为在每年年底,我都有包含数百万条记录的巨大表格,这意味着我很快就会调用大量查询(当我决定选择时我没有计划PostgreSQL).
模式是命名空间,因此它们是“逻辑”事物,而不是物理事物。
As documented in the manual 每个 table 表示为 数据库对应的目录中的一个(或多个文件) 创建 table in. 名称空间(模式)未反映在物理数据库布局中。
一般来说,您一开始不应该关心数据库的存储,您的 SQL 查询将不知道实际数据存储在哪里。
如今,“数百万”行并不被认为是“巨大的”。如果你在性能问题上做 运行,你将使用例如调整你的查询索引或将其重写为更有效的解决方案。在极少数情况下,partitioning 一个 table 可以帮助处理非常大的 tables - 但我们谈论的是数亿甚至数十亿行。对于中小型 tables,分区通常对性能没有帮助。