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