最近我在阅读关于在MySQL数据库中管理大型数据集的不同方法。
说实话,目前我很困惑。我阅读了一些有关这个问题的概念,但我不知道它们彼此之间的关系。
请看以下内容:
- 分区 - 这是一个插件
- 集群 - 我猜是名为NDB的集群
- 分片 - 这是一个概念,我认为并没有可实现性
场景是在MySQL中存储/维护/检索大量数据(假设一个具有50亿行的表)。那么我们该如何拆分这个数据集?
我有几个问题:
- 上述三个项目之间有多少重叠部分?
- 在分区中,所有部分都会存储在同一台机器(服务器)上吗?还是可以保存在不同的机器上?
- 如何检测数据存储在哪个分区?(以便相应地查找数据)
- 我知道分区是针对“表”的,那么集群是针对“数据库”的吗?
- 通过分片,我们在不同的服务器上复制数据,还是在不同的服务器上有不同的数据?它发生在“表”层还是“数据库”层?
- 当我们需要对整个表执行join子句时,不同部分(集群/分区)如何相互查看? 假设数据在不同的分区/机器中。
- 使用集群,我需要安装MySQL的不同版本吗? 它不支持普通版本吗?
总之,我已经阅读了3天,主要的概念仍然很模糊。