数据库读写分离研究

如何提升大型网站的访问速度,根据理解和经验通常经常使用的方法如SQL优化、缓存、集群等等,NewEgg的专家提示说作过大型网站的话应该知道数据库读写分离的。算法

读写分离(Read/Write Splitting)”,基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询致使的变动同步到集群中的从数据库。数据库

对于大访问量的网站,通常会采用读写分离,好比ebay的读写比率是260:1,也就是大型的电子商务网站的。缓存

网上看到说采用读写分离有以下工具:
1,oracle的logical standby
2, Quest公司的SharePlex
3, DSG公司的RealSync服务器

MySQL Replication能够将master的数据复制分布到多个slave上,而后能够利用slave来分担master的读压力。那么对于前台应用来 说,就要考虑如何将读的压力分布到多个slave上。若是每一个应用都须要来实现读写分离的算法,一则成本过高,二来若是slave增长更多的机器,应用就 要随之修改。明显的,若是在应用和数据库间加一个专门用于实现读写分离的中间层,则整个系统的架构拥有更好的扩展性。MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个链接池,负责将前台应用的链接请求转发给后台的数据库,而且经过使用lua脚本,能够实现复杂的链接控制和过滤,从而实现读写分离和负 载平衡。对于应用来讲,MySQL Proxy是彻底透明的,应用则只须要链接到MySQL Proxy的监听端口便可。固然,这样proxy机器可能成为单点失效,但彻底可使用多个proxy机器作为冗余,在应用服务器的链接池配置中配置到多 个proxy的链接参数便可。架构

相关文章
相关标签/搜索