【发布时间】:2020-07-13 16:07:05
【问题描述】:
在 MySQL(和 PostgreSQL)中,究竟是什么构成了数据库实例和数据库分区?
例如,不同的数据库分区是否需要存在于不同的数据库实例上?或者单个数据库实例可以管理多个分区吗?如果是后者,称其为“分区”有什么意义?在这种情况下,DB 会知道吗?
以下是在线课程中描述系统设计的文档中的引述:
我们如何规划系统的未来发展?
我们可以拥有大量的逻辑分区来适应未来的数据增长,这样一开始,多个逻辑分区驻留在一个物理数据库服务器上。由于每个数据库服务器可以有多个数据库实例,我们可以在任何服务器上为每个逻辑分区拥有单独的数据库。所以每当我们觉得某个特定的数据库服务器有很多数据时,我们可以将一些逻辑分区从它迁移到另一台服务器上。我们可以维护一个配置文件(或单独的数据库),将我们的逻辑分区映射到数据库服务器;这将使我们能够轻松地移动分区。每当我们想移动一个分区时,我们只需要更新配置文件来宣布改变。
【问题讨论】:
-
具体-哪个数据库系统?我认为该文本是在谈论分片,而不是分区。
-
@LaurenzAlbe 我主要对 MySQL 感兴趣,但将它留给 PostgreSQL,因为听起来这些概念可能相对普遍
-
你能提供引用材料的链接吗?我猜这不是来自 mysql 或 postgresql 的官方文档。
-
Sharding 涉及多个实例。在 MySQL 中,Partitioning 应该仅限于单个实例。查看我的答案。
标签: mysql postgresql partitioning sharding