新华社
这样做最直接的好处是: 读请求被分散到多个从库上 ,主库的压🔑力大大减轻,写操作的响应速度也会提升
数据同步的关键:二进制日志 从库并不是凭空拿到最新数据的
中间件代理 :如MyCat、ShardingSphere、ProxySQL等
所以,如果你在网站上刚发布了一篇文章,刷新页面却📌没有立刻看到,很可能是因为你读的是从库📌,而数据尚未同步完成
不要盲目追求分离 :读写分离会增加运维复杂度和硬件成本
数据库读写分离:不只是高并发网站的专利 当你在百度搜索一个关键词,点击结果进入某个网站,🔑页面加✨载出来的瞬间,背后可能已经完成了一次数据库的“读”操作
搭配角色重启生活的剧情,给观众积极的❤️心理暗示,传递满满的希望
如果这个网站🎉同时有很多人在写评论、提交订单,那就涉及数据库的“写”操作
对于搜索引擎来说,更快的内容更新和更快的📚页面响应都🚀是排名上的正向信号
优点是灵活可控,缺点是侵入性强,每个读写操☀️作都🌈需要考虑路由
应用程序只连接代理层,代理自动解🎵析SQL并分发到对应的主或从库
而 读写分离 正是解决这一问题的常见架构设计
应用程序在代码📢层或中间件层做判断🌅:如果是写SQL,发往主库;如果是读SQL,发往从库
一般当数据库读请求成为瓶颈,或主库的CPU/I/O占用持续超过70%时,才值得动手改造