V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
YiSheng
V2EX  ›  MySQL

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

  •  
  •   YiSheng ·
    yisheng · 2015-03-02 23:44:02 +08:00 via iPhone · 11936 次点击
    这是一个创建于 3538 天前的主题,其中的信息可能已经有所发展或是发生改变。
    网站访问高峰时,从库的延迟能到10-30秒,这在很多业务场景下都不可接受,比如:刚刚发完帖子,一刷新没有了…

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

    @quericy @dugrey @msg7086 @zjf789524 @tb4649120073rs @MasterYoda
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1411 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 17:32 · PVG 01:32 · LAX 09:32 · JFK 12:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.