上QQ阅读APP看书,第一时间看更新
1.3.4 拥抱透明的分片中间件
透明的分片中间件将数据库分成多个分片(shard),这些分片存储在由单节点DBMS实例组成的集群中。ShardingSphere就是这样做的。
诸如ShardingSphere等分片中间件让用户(或组织)能够将数据库分成多个分片,并将它们存储在多个单节点DBMS实例中。本节将帮助你搞明白什么是数据分片。DBA始终在寻找对DBMS进行优化的途径;出现数据输入高峰时,必须有适当的处理策略。对于这种问题,最佳的处理方法之一是,将数据分成独立的行和列,这样的方法包括数据分片和数据分区。下面来介绍这两个概念以及它们之间的不同之处。
1.数据分片
将大型数据库表分成多个小表时,便创建了分片。新创建的表被称为分片或分区。这些分片存储在多个节点中,这提高了可伸缩性和性能。这种可伸缩性被称为水平伸缩性。分片能够让DBA以尽可能高效的方式使用计算资源,这被称为数据库优化。
优化计算资源只是分片的重要优点之一,重要的是它可减少需要扫描的行数,让用户查询的响应速度比使用单个巨型数据库时快得多。
2.数据分区
说到分区,你可能感到困惑,这是完全正常的,因为数据分区常常让人误解。所谓分区,指的是将数据库分成多个子集,但这些子集依然存储在单个数据库(单个数据库有时也被称为数据库实例)中。那么分片和分区有何不同呢?分片和分区都将大型数据集分成多个小型数据集,但一个重要的不同是,分片意味着划分后的数据分散在多台计算机中,无论是水平分片还是垂直分片都如此。