MySQL数据库扩展

很多大规模的站点基本上都经历了从简单主从复制到垂直分区,再到水平分区的步骤,这是一个必然的成长过程。


1 主从复制、读写分离(R/W Splitting)


将应用程序中对数据库的写操作指向主服务器,而将读操作指向从服务器。从服务器定时向主服务器请求最新日志,主服务器异步将二进制日志输送给从服务器。


而应用程序与多台数据库之间,可以通过MySQL Proxy反向代理解耦。应用程序只需要跟MySQL Proxy 通信即可,而读写分离的工作都由MySQL Proxy 来完成,与此同时,
MySQL Proxy 还对多个从服务器实现负载均衡以及可用性检测。

[img]http://dl.iteye.com/upload/attachment/590547/fc8bc994-cad4-31d5-b29b-ddd49fe3cc64.jpg[/img]


2 垂直分区


将相关度不大的数据库分布到不同的服务器上。需要时,可以对各个分区进行读写分离,主从复制。


[img]http://dl.iteye.com/upload/attachment/590549/557b8b45-b062-3569-a21b-aad93dbd91b2.jpg[/img]

3 水平分区(Sharding)


可以将同一数据表中的记录通过哈希算法、范围、或是映射关系等算法进行分离,分别保存在不同的数据表中,从而可
以部署在不同的数据库服务器上。


开源产品Spock Proxy帮助应用程序实现水平分区的访问调度。


[img]http://dl.iteye.com/upload/attachment/590543/63cba93e-d945-3e0f-949a-731262d8c2b3.jpg[/img]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章