关于Mysql主从和读写分离的问题

最近刚接触主从和读写分离相关,往上大多数博客、教程都说读写分离,是为了解决占用时间比较长的问题

但是有一点比较疑惑,主服务器进行写的操作,然后把sql语句存入日志,从服务器获取日志里的sql语句,不是也要跟着进行写的操作吗? 好像并没有节省时间和性能啊,希望老师帮忙解答一下

阅读 2.7k
4 个回答
  • 数据库读写在同一台机子上,数据写入的效率会直接受到数据读取的影响和制约,如果剥离读请求,自然主数据库服务器的写入效率会有一定的提高
  • 如果是单独一个从属服务器,需要接收来之主服务器上的数据同步(写入请求),同时需要支撑业务上的读取请求,自然数据读取的效率甚至不如非主从的数据库服。但从属服务器的数量,是可以增加的(横向扩展),这样一来,配合上业务程序分布读取逻辑或proxy的反向代理,将读取请求分布到多个从属数据库节点,读取效率上就有了质的飞跃

读写分离在单写这一点上性能确实是会下降的,但带来的好处是通过多台服务器分担读的压力。
在写的时候,其它只读服务器并不会被锁死,可以支持同时的并发读访问。至于大多数博客、教程...建议提供出处

  • 其实大部分的业务, 写 操作是很小的比例,一般10%-40之间吧,看具体的业务场景。
  • MySQL的从服务器,获取了SQL,执行的时间点很重要。下面这句话是别的地方粘过来的:
主从同步是一个异步实时的同步,会实时的传输,但存在执行上的延时,如果主服务器压力很大,延时也会相应扩大。
参考

主要是隔离读和写,让读不影响写,这样尽最大努力防止在线业务受影响。另一方面,面对读多写少的场景,水平扩展读性能。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题