第 12
12
12
12 章 MySQL
MySQL
MySQL
MySQL 可扩展设计的基本原则
前言:
随着信息量的飞速增加, 硬件设备的发展已经慢慢的无法跟上应用系统对处理能力的 要
求了。 此时, 我们如何来解决系统对性能的要求?只有一个办法, 那就是通过改造系统的 架
构体系, 提升系统的扩展能力, 通过组合多个低处理能力的硬件设备来达到一个高处理能 力
的系统, 也就是说,我们必须进行可扩展设计。可扩展设计是一个非常复杂的系统工程, 所
涉及的各个方面非常的广泛, 技术也较为复杂, 可能还会带来很多其他方面的问题。 但不 管
我们如何设计, 不管遇到哪些问题, 有些原则我们还是必须确保的。 本章就将可扩展设计 过
程中需要确保的原则做一个简单的介绍 。
12.1 什么是可扩展性
什么是可扩展性
什么是可扩展性
什么是可扩展性
在讨论可扩展性之前, 可能很多朋有会问: 常听人说起某某网站某某系统在可扩展性 方
面设计的如何如何好, 架构如何如何出色, 到底什么是扩展?怎样算是可扩展?什么又是 可
扩展性呢?其实也就是大家常听到的 Scale , Scalable 和 Scalability 这三个词。
从数据库的角度来说, Scale (扩展)就是让我们的数据库能够提供更强的服务能力,
更强的处理能力。而 Scalable (可扩展)则是表明数据库系统在通过相应升级(包括增加
单机处理能力或者增加服务器数量) 之后能够达到提供更强处理能力。 在理论能上来说, 任
何数据库系统都是 Scalable 的,只不过是所需要的实现方式不一样而已。最后,
Scalability (扩展性)则是指一个数据库系统通过相应的升级之后所带来处理能力提升的
难以程度。 虽然理论上任何系统都可以通过相应的升级来达到处理能力的提升, 但是不同 的
系统提升相 同的处理能力所需要的升级成本 (资金和人力) 是不一样的, 这也就是我们所 说
的各个数据库应用系统的 Scalability 存在很大的差异。
在这里, 我所说的不同数据库应用系统并不是指数据库软件本身的不同 (虽然数据库 软
件不同也会存在 Scalability 的差异) , 而是指相同数据库软件的不同应用架构设计, 这 也
正是本章以及后面几张将会所重点分析的内容。
首先, 我们需要清楚一个数据库据系统的扩展性实际上是主要体现在两个方面, 一个 是
横向扩展,另一个则是纵向扩展,也就是我们常说的 Scale Out 和 Scale Up 。
Scale Out 就是指横向的扩展, 向外扩展, 也就是通过增加处理节点的方式来提高整 体
处理能力,说的更实际一点就是通过增加机器来增加整体的处理能力。
Scale Up 则是指纵向的扩展,向上扩展,也就是通过增加当前处理节点的处理能力来
提高整体的处理能力,说白了就是通过升级现有服务器的配置,如增加内存,增加 CPU , 增
- 1
- 2
- 3
- 4
- 5
- 6
前往页