开发者社区> 问答> 正文

MySQL master/slave 模式的读写分离为什么会提高性能?

看了一些文章,使用master/slave模式实现读写分离以提高mysql性能
实现方式是web server向master写,master与slave同步,然后web server从slave上读
我不明白这种方式为什么会提高性能?因为master需要与slave同步,这意味着在master所执行的(写)的所有语句,都会在slave被执行一遍,这不是等于slave与master的负荷与读的效率是一致的吗?
是读写方式的实现方式我理解错了,还是有我没有搞懂的地方?请赐教,谢谢!

展开
收起
落地花开啦 2016-06-15 11:25:47 2996 0
3 条回答
写回答
取消 提交回答
  • 适合读多写少的场景

    2019-07-17 19:38:58
    赞同 展开评论 打赏
  • 读写分离提升性能是有特定的应用场景的。不是万金油。比如都是大流量的写入操作,整个读写分离嘛用都没有。

    2019-07-17 19:38:58
    赞同 展开评论 打赏
  • 喜欢技术,喜欢努力的人

    1.物理服务器增加,负荷增加
    2.主从只负责各自的写和读,极大程度的缓解X锁和S锁争用
    3.从库可配置myisam引擎,提升查询性能以及节约系统开销
    4.至于你提到的“master所执行的(写)的所有语句,都会在slave被执行一遍”这个只说对一半,从库同步主库的数据和主库直接写还是有区别的,通过主库发送来的binlog恢复数据,但是,最重要区别在于主库向从库发送binlog是异步的,从库恢复数据也是异步的。
    5.读写分离适用与读远大于写的场景,如果只有一台服务器,当select很多时,update和delete会被这些select访问中的数据堵塞,等待select结束,并发性能不高。 对于写和读比例相近的应用,应该部署双主相互复制。

    2019-07-17 19:38:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像