高性能MySQL-第十一章 可扩展的MySQL(1)
可扩展性就是当增加资源以处理负载和增加容量时系统能够获得的投资产出率(ROI)。
一、规划可扩展性
二、为扩展赢得时间
优化性能
购买性能更强的硬件
三、向上扩展
四、向外扩展
可以把向外扩展(有时也称为横向扩展或者水平扩展)策略划分为三个部分:复制、拆分,以及数据分片(sharding)。
最常见也最简单的向外扩展的方法是通过复制将数据分发到多个服务器上,然后将备库用于读查询。
另外一个比较常见的向外扩展方法是将工作负载分布到多个“节点”。
1)、按功能拆分
2)、数据分片
3)、选择分区键(partitioning key)
4)、多个分区键
5)、跨分片查询
6)、分配数据、分片和节点
7)、在节点上部署分片
8)、固定分配
将数据分配到分片中有两种主要的方法:固定分配和动态分配。两种方法都需要一个分区函数,使得行的分区键值作为输入,返回存储该行的分片。固定分配使用的分区函数仅仅依赖于分区键的值。
9)、动态分配
使用动态分配,将每个数据单元映射到一个分片。
10)、混合动态分配和固定分配
11)、显式分配
12)、重新均衡分片数据
13)、生成全局唯一ID
14)、分片工具
五、通过多实例扩展
六、通过集群扩展
七、向内扩展