MySQL 读写分离后的数据一致性问题

2015-03-02 23:44:02 +08:00
 YiSheng
网站访问高峰时,从库的延迟能到10-30秒,这在很多业务场景下都不可接受,比如:刚刚发完帖子,一刷新没有了…

大家有什么推荐的解决方案?
11966 次点击
所在节点    MySQL
7 条回复
quericy
2015-03-03 00:07:15 +08:00
缓存....缓存生成和过期重取都取从库,写主库的时候更新差异部分的缓存
dugrey
2015-03-03 00:22:04 +08:00
msg7086
2015-03-03 04:02:53 +08:00
为什么不先研究一下为什么会延迟呢?
如果是硬盘读写跟不上,那就堆ssd。
如果是cpu不行,就加机器。
zjf789524
2015-03-03 10:11:52 +08:00
用memcache 或者 redis 做高峰时期插和查的操作 然后用任务的方式从库去读取结果集 再插入
tb4649120073rs
2015-03-03 10:38:29 +08:00
加缓存层...
缓存从数据库读取的数据和最近一段时间写入的数据。
延迟那么大说明数据库负荷太重了,找找瓶颈吧。
MasterYoda
2015-03-03 12:03:46 +08:00
正常情况下主从延迟可以为0的。
看看从库机器的负载吧,找出瓶颈。
YiSheng
2015-03-03 15:39:20 +08:00
多谢各位的支援,确实是从库的问题,瓶颈在于一条执行频率颇高的 SQL 的索引不完善,并且这张表是 MyISAM 引擎,所以 binlog 需要等待其上的查询操作完成后才可以执行,这直接导致主从延迟过高。优化完索引之后,从库的延迟时间、CPU 都降下来了。等下一波高峰时验证是否解决的够彻底!

@quericy @dugrey @msg7086 @zjf789524 @tb4649120073rs @MasterYoda

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/174052

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX