V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
a251922581
V2EX  ›  程序员

服务器端 MySQL 数据持续增加 3 小时,客户端只有 Sqlite,数据如何同步到客户端 Sqlite 比较好?

  •  
  •   a251922581 · 2017-09-21 11:58:39 +08:00 · 2018 次点击
    这是一个创建于 2380 天前的主题,其中的信息可能已经有所发展或是发生改变。
    客户启动任务后,任务产生的数据都存到服务器端 MySQL 的表里,客户端为了增删查改速度快一点只维护一个本地的 SQLite 数据库,一个任务 3 ~ 5 个小时,每秒产生 10 条数据,期间服务器端存储在 MySQL 里的数据要同步到客户端。
    目前实现很 low,服务器端把 MySQL 增量插入的数据再导出到 CSV,然后存储到文件,让客户端通过 HTTP ( Nginx )下载,然后把增量的 CSV 数据导入 Sqlite...无语了吧..
    客户端因是 Sqlite,用 MySQL 的主从复制应该不行了吧。。
    10 条回复    2017-09-21 18:41:42 +08:00
    jamesxu
        1
    jamesxu  
       2017-09-21 12:08:41 +08:00 via iPhone
    写接口用定时任务下载啊
    misaka19000
        2
    misaka19000  
       2017-09-21 12:10:05 +08:00 via Android
    用本地 SQLite 能快多少?
    winglight2016
        3
    winglight2016  
       2017-09-21 13:12:18 +08:00
    这么多数据需要全部同步到客户端吗?感觉很无谓,通过 API 获取用户当前需要的数据就够了吧?

    为了增删查改速度快一点——把服务端的响应代码优化一下才是更好的选择啊,例如:把最近任务的数据全部加载到内存里缓存好
    owenliang
        4
    owenliang  
       2017-09-21 13:16:28 +08:00   ❤️ 1
    一般都是基于 binlog 做,开源项目自己搜。
    a251922581
        5
    a251922581  
    OP
       2017-09-21 13:34:10 +08:00
    @misaka19000
    @owenliang 本地有份副本的话方便离线也能查看,客户端只获取增量的方式暂时没想出来,呵呵 这样子看下一步搜一下开源软件,或者要自己写一个接口。。
    janxin
        6
    janxin  
       2017-09-21 14:45:01 +08:00
    不是很能理解这样设计的原因...
    增删改不同步到 MySQL 里面吗?
    Klingon
        7
    Klingon  
       2017-09-21 17:17:25 +08:00
    试试 couchbase?
    iappled
        8
    iappled  
       2017-09-21 17:46:10 +08:00
    需要啥拿啥啊,分个页??
    LukeChien
        9
    LukeChien  
       2017-09-21 17:56:39 +08:00 via Android
    用阿里的 Canal 读 binlog 实时更新 sqlite
    a251922581
        10
    a251922581  
    OP
       2017-09-21 18:41:42 +08:00
    @janxin 服务器端数据产生一遍给客户端,服务器端就不管事儿了,客户端自己查看 /管理数据了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3252 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:10 · PVG 21:10 · LAX 06:10 · JFK 09:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.