› 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 · Mar 2, 2015 via iPhone · 13299 views
    This topic created in 4232 days ago, the information mentioned may be changed or developed.
    网站访问高峰时,从库的延迟能到10-30秒,这在很多业务场景下都不可接受,比如:刚刚发完帖子,一刷新没有了…

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

    @quericy @dugrey @msg7086 @zjf789524 @tb4649120073rs @MasterYoda
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2263 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 07:46 · PVG 15:46 · LAX 00:46 · JFK 03:46
    ♥ Do have faith in what you're doing.