Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 数据库服务器、分区和实例_Mysql_Postgresql_Partitioning_Sharding - Fatal编程技术网

Mysql 数据库服务器、分区和实例

Mysql 数据库服务器、分区和实例,mysql,postgresql,partitioning,sharding,Mysql,Postgresql,Partitioning,Sharding,在MySQL(和PostgreSQL)中,究竟是什么构成了一个DB实例和一个DB分区 例如,不同的数据库分区是否需要存在于不同的数据库实例上?或者单个DB实例可以管理多个分区吗?如果是后者,将其称为“分区”有什么意义?在这种情况下,争议裁决委员会是否知道这一点 以下是一段引用自在线课程中描述系统设计的文档: 我们如何规划系统的未来增长? 我们可以有大量的逻辑分区来适应未来的数据增长,例如,在一开始,多个逻辑分区驻留在一个物理数据库服务器上。由于每个数据库服务器上都可以有多个数据库实例,因此任何服

在MySQL(和PostgreSQL)中,究竟是什么构成了一个DB实例和一个DB分区

例如,不同的数据库分区是否需要存在于不同的数据库实例上?或者单个DB实例可以管理多个分区吗?如果是后者,将其称为“分区”有什么意义?在这种情况下,争议裁决委员会是否知道这一点

以下是一段引用自在线课程中描述系统设计的文档:

我们如何规划系统的未来增长?

我们可以有大量的逻辑分区来适应未来的数据增长,例如,在一开始,多个逻辑分区驻留在一个物理数据库服务器上。由于每个数据库服务器上都可以有多个数据库实例,因此任何服务器上的每个逻辑分区都可以有单独的数据库。因此,每当我们觉得某个数据库服务器有大量数据时,我们就可以将一些逻辑分区从它迁移到另一个服务器。我们可以维护一个配置文件(或一个单独的数据库),它可以将我们的逻辑分区映射到数据库服务器;这将使我们能够轻松地移动分区。每当我们想要移动分区时,我们只需要更新配置文件来宣布更改


就MySQL和PostgreSQL功能集而言,分区是数据的物理分段。它们存在于单个数据库实例中,用于减少在特定时间与之交互的数据范围,以应对高数据量的情况


您引用的文档提到的是系统设计级别上更抽象的数据分区概念。

分区,就MySQL和PostgreSQL功能集而言,是数据的物理分段。它们存在于单个数据库实例中,用于减少在特定时间与之交互的数据范围,以应对高数据量的情况


您引用的文档提到的是系统设计级别上更抽象的数据分区概念。

这些术语容易混淆、误用,并且定义不一致

对于MySQL:

数据库有多个定义:

  • “模式”(由其他供应商/标准使用)。这是一组表。实例中有一个或多个“数据库”
  • 实例。您应该使用“服务器”或“数据库服务器”更清楚
  • 数据。“数据集”可能是一个更好的术语
实例是指在某台机器上某处运行的
mysqld
的副本

  • 在一个硬件上可以有多个实例。(罕见)
  • 您可以在单个硬件上拥有多个实例,这些实例位于不同的VM或Docker中。(用于测试)
  • 通常“实例”指的是一台服务器上有一个MySQL副本。(典型的大规模情况)
分区
是布局
(在
数据库
中)的一种特定方式

  • 它可以在创建表(…)分区中看到。
  • 它是数据的“水平”分割,通常按日期划分,但也可以按其他“列”划分
  • 它对性能没有直接影响,因此很少有用
切分不是在MySQL中实现的,但是可以在MySQL上实现

  • 它也是数据的“水平”分割,但在本例中是跨多个“实例”
  • 例如,用例是社交媒体,其中有数百万“用户”,大部分由他们自己处理。也就是说,大多数查询集中在一个数据片段上,因此在一台服务器上对一群用户执行所有这些查询是切实可行的
  • 它可以称为“水平分区”,但不应与表的分区相混淆
垂直分区是将一些列从表中拉出并放入并行表中

  • 这两个表(通常)具有相同的
    主键
    ,因此便于
    联接
  • 垂直分区(通常)只能在一个“实例”中完成
  • 其目的包括拆分大文本/博客列;拆分可选列(并使用
    LEFT JOIN
    获取
    null
  • 垂直分区在MyISAM中有些有用,但在InnoDB中很少有用,因为该引擎会自动执行这种操作
复制群集

  • 多个实例包含相同的数据
  • 用于“高可用性”(HA)
  • 用于扩展读取
  • 垂直于分割或切分
  • 将实例放在同一台服务器上没有意义(测试/实验/登台等除外)

这些术语容易混淆、误用且定义不一致

对于MySQL:

数据库有多个定义:

  • “模式”(由其他供应商/标准使用)。这是表的集合。实例中有一个或多个“数据库”
  • 实例。您应该使用“服务器”或“数据库服务器”更清楚
  • 数据。“数据集”可能是一个更好的术语
实例是指在某台机器上某处运行的
mysqld
的副本

  • 在单个硬件上可以有多个实例。(罕见)
  • 您可以在单个硬件上拥有多个实例,这些实例位于不同的VM或Docker中。(便于测试)
  • 通常“实例”指的是一个人的实例