你的位置:首页 > 软件开发 > 数据库 > MySQL性能调优与架构设计——第 15 章 可扩展性设计之Cache与Search的利用

MySQL性能调优与架构设计——第 15 章 可扩展性设计之Cache与Search的利用

发布时间:2016-06-22 17:00:26
第 15 章 可扩展性设计之Cache与Search的利用前言:前面章节部分所分析的可扩展架构方案,基本上都是围绕在数据库自身来进行的,这样是否会使我们在寻求扩展性之路的思维受到“禁锢”,无法更为宽广的发散开来。这一章,我们就将跳出完全依靠 ...

MySQL性能调优与架构设计——第 15 章 可扩展性设计之Cache与Search的利用

第 15 章 可扩展性设计之Cache与Search的利用

前言:

前面章节部分所分析的可扩展架构方案,基本上都是围绕在数据库自身来进行的,这样是否会使我们在寻求扩展性之路的思维受到“禁锢”,无法更为宽广的发散开来。这一章,我们就将跳出完全依靠数据库自身来改善扩展性的问题,将数据服务扩展性的改善向数据库之外的天地延伸!

15.1 可扩展设计的数据库之外延伸

数据库主要就是为应用程序提供数据存取相应的服务,提高数据库的扩展性,也是为了更好的提供数据存取服务能力,同时包括可靠性,高效性以及易用性。所以,我们最根本的目的就是让数据层的存储服务能力得到更好的扩展性,让我们的投入尽可能的与产出成正比。 从图中我们可以看到,所有数据都会写入 MySQL Master 中,包括数据第一次写入时候的INSERT,同时也包括对已有数据的 UPDATE 和 DELETE。不过,如果是对已经存在的数据,则需要在 UPDATE 或者 DELETE MySQL 中数据的同时,删除 Memcached 中的数据,以此保证整体数据的一致性。而所有的读请求首先会发往 Memcached 中,如果读取到数据则直接返回,如果没有读取到数据,则再到 MySQL Slaves 中读取数据,并将读取得到的数据写入到 Memcached 中进行 Cache。 如架构图上所示,我们首先在 MySQL 数据库端应用 Waffle Grid Patch,通过他连与其他的 Memcached 服务器通信。为了保证网络通信的性能,MySQL 与 Memcached 之间尽可能用高带宽私有网络。另外,这里的架构图中并没有再将数据库区分 Master 和 Slave 了,并不是说一定不能区分,只是一个示意图。在实际应用过程中,大部分时候只需要在 Slave 上面应用 Waffle Grid 即可,Master 本身并不需要如此大的内存。 通过 DBT2 所得到的这组测试对比数据,在性能我想并不需要太多的担忧了吧。至于Waffle Grid 是否适合您的应用场景,那就只能依靠各位读者朋友自己进行评估了。 如图中所示,此架构和上面将 Memcached 完全和 MySQL 读离开作为常规的 Cache 服务器来比较,最大的区别在于 Memcached 的数据变为由 MySQL 数据库来维护更新,而不是应用程序来更新。首先数据被应用程序写入 MySQL 数据库,这时候将会触发 MySQL 上面用户自行编写的相关 UDF,然后通过该 UDF 调用 Memcached 的相关通信接口,将数据写入 Memcached。而当 MySQL 中的数据被更新或者删除的时候,MySQL 中的相关 UDF 同样会更新或者删除 Memcached 中的数据。当然,我们也可以让 MySQL 做更少一些的事情, 仅仅只是遇到数据被更新或者删除的时候,通过 UDF 来删除 Memcached 中的数据,写入工作则像前面的架构一样由应用程序来作。 来展示:

15.5 利用分布式并行计算实现大数据量的高性能运算

说到大规模大数据量的高性能运算的时候,可能很多人都会想到最近风靡整个 IT 界的一个关键词:云计算,亦或是几年前的“网格计算”。

摘自:《MySQL性能调优与架构设计》简朝阳

转载请注明出处:

作者:JesseLZJ

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:MySQL性能调优与架构设计——第 15 章 可扩展性设计之Cache与Search的利用

关键词:MYSQL

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。