Mysql 数据库服务器、分区和实例
在MySQL(和PostgreSQL)中,究竟是什么构成了一个DB实例和一个DB分区 例如,不同的数据库分区是否需要存在于不同的数据库实例上?或者单个DB实例可以管理多个分区吗?如果是后者,将其称为“分区”有什么意义?在这种情况下,争议裁决委员会是否知道这一点 以下是一段引用自在线课程中描述系统设计的文档: 我们如何规划系统的未来增长? 我们可以有大量的逻辑分区来适应未来的数据增长,例如,在一开始,多个逻辑分区驻留在一个物理数据库服务器上。由于每个数据库服务器上都可以有多个数据库实例,因此任何服务器上的每个逻辑分区都可以有单独的数据库。因此,每当我们觉得某个数据库服务器有大量数据时,我们就可以将一些逻辑分区从它迁移到另一个服务器。我们可以维护一个配置文件(或一个单独的数据库),它可以将我们的逻辑分区映射到数据库服务器;这将使我们能够轻松地移动分区。每当我们想要移动分区时,我们只需要更新配置文件来宣布更改Mysql 数据库服务器、分区和实例,mysql,postgresql,partitioning,sharding,Mysql,Postgresql,Partitioning,Sharding,在MySQL(和PostgreSQL)中,究竟是什么构成了一个DB实例和一个DB分区 例如,不同的数据库分区是否需要存在于不同的数据库实例上?或者单个DB实例可以管理多个分区吗?如果是后者,将其称为“分区”有什么意义?在这种情况下,争议裁决委员会是否知道这一点 以下是一段引用自在线课程中描述系统设计的文档: 我们如何规划系统的未来增长? 我们可以有大量的逻辑分区来适应未来的数据增长,例如,在一开始,多个逻辑分区驻留在一个物理数据库服务器上。由于每个数据库服务器上都可以有多个数据库实例,因此任何服
就MySQL和PostgreSQL功能集而言,分区是数据的物理分段。它们存在于单个数据库实例中,用于减少在特定时间与之交互的数据范围,以应对高数据量的情况
您引用的文档提到的是系统设计级别上更抽象的数据分区概念。分区,就MySQL和PostgreSQL功能集而言,是数据的物理分段。它们存在于单个数据库实例中,用于减少在特定时间与之交互的数据范围,以应对高数据量的情况
您引用的文档提到的是系统设计级别上更抽象的数据分区概念。这些术语容易混淆、误用,并且定义不一致 对于MySQL: 数据库有多个定义:
- “模式”(由其他供应商/标准使用)。这是一组表。实例中有一个或多个“数据库”
- 实例。您应该使用“服务器”或“数据库服务器”更清楚
- 数据。“数据集”可能是一个更好的术语
mysqld
的副本
- 在一个硬件上可以有多个实例。(罕见)
- 您可以在单个硬件上拥有多个实例,这些实例位于不同的VM或Docker中。(用于测试)
- 通常“实例”指的是一台服务器上有一个MySQL副本。(典型的大规模情况)
分区
是布局表
(在数据库
中)的一种特定方式
- 它可以在创建表(…)分区中看到。
- 它是数据的“水平”分割,通常按日期划分,但也可以按其他“列”划分
- 它对性能没有直接影响,因此很少有用
- 它也是数据的“水平”分割,但在本例中是跨多个“实例”
- 例如,用例是社交媒体,其中有数百万“用户”,大部分由他们自己处理。也就是说,大多数查询集中在一个数据片段上,因此在一台服务器上对一群用户执行所有这些查询是切实可行的
- 它可以称为“水平分区”,但不应与表的分区相混淆
- 这两个表(通常)具有相同的
,因此便于主键
联接
- 垂直分区(通常)只能在一个“实例”中完成
- 其目的包括拆分大文本/博客列;拆分可选列(并使用
获取LEFT JOIN
)null
- 垂直分区在MyISAM中有些有用,但在InnoDB中很少有用,因为该引擎会自动执行这种操作
- 多个实例包含相同的数据
- 用于“高可用性”(HA)
- 用于扩展读取
- 垂直于分割或切分
- 将实例放在同一台服务器上没有意义(测试/实验/登台等除外)
- “模式”(由其他供应商/标准使用)。这是表的集合。实例中有一个或多个“数据库”
- 实例。您应该使用“服务器”或“数据库服务器”更清楚
- 数据。“数据集”可能是一个更好的术语
mysqld
的副本
- 在单个硬件上可以有多个实例。(罕见)
- 您可以在单个硬件上拥有多个实例,这些实例位于不同的VM或Docker中。(便于测试)
- 通常“实例”指的是一个人的实例