MySQL读写分离的概述

基本的原理是让数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。

为什么要读写分离:

面对越来越大的访问压力,单台的服务器的性能成为瓶颈,需要分担负载

1、 主从只负责各自的写和读,极大程度的缓解X锁和S锁争用

2、 从库可配置myisam引擎,提升查询性能以及节约系统开销

3、 增加冗余,提高可用性

一般有两种方式实现

应用程序层实现,网站的程序实现

应用程序层实现指的是在应用程序内部及连接器中实现读写分离

优点:

A:应用程序内部实现读写分离,安装既可以使用

B:减少一定部署难度

C:访问压力在一定级别以下,性能很好

缺点:

A:架构一旦调整,代码要跟着变

B:难以实现高级应用,如自动分库,分表

C:无法适用大型应用场景

中间件层实现

中间件层实现是指在外部中间件程序实现读写分离

常见的中间件程序:

Mysql-proxy    amoeba    Atlas (360)  Cobar(Alibaba)  TDDL(Taobao)

优点:

A:架构设计更灵活

B:可以在程序上实现一些高级控制,如:透明化水平拆分,failover,监控

C:可以依靠些技术手段提高mysql性能,

D:对业务代码的影响小,同时也安全

缺点:

需要一定的开发运维团队的支持




网友评论

2条评论

发表

网友评论

2条评论

发表

最新评论

chenxiaoyun 3 0

东西是好东西,落地就更好了

04月23日 12:07

小黑兔 6 0

太高深了。

04月11日 23:18

推荐文章

彩龙

Copyright © 2008-2021 彩龙社区 版权所有 All Rights Reserved.

免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。

经营许可证编号:滇B2-20090009-7

下载我家昆明APP 下载彩龙社区APP