V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ghostheaven
V2EX  ›  问与答

sqlite 可否应对大量数据

  •  
  •   ghostheaven · 2017-08-07 12:58:17 +08:00 · 3839 次点击
    这是一个创建于 2693 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有个原型产品用了 sqlite,日常有大量的写操作,大概每隔 2 秒有一次,一次有几条到十几条数据插入,基本没有读取,需要 7*24 小时工作,但对可靠性要求不算太高,允许偶尔丢数据或重启。

    不知道 sqlite 能否支撑这样的服务长时间运行,有 v 友用过 sqlite 做大量数据的吗?
    14 条回复    2017-08-08 01:23:27 +08:00
    dodo20120
        1
    dodo20120  
       2017-08-07 13:07:01 +08:00
    不建议,有次做了个公众号投票系统,为了方便用了 sqlite3,结果,一会就读写不进了,系统直接崩,换成 pg 后立马满血复活。
    ghostheaven
        2
    ghostheaven  
    OP
       2017-08-07 13:18:27 +08:00 via Android
    @dodo20120 用 sqlite 也是图它小,简单,发布出去部署很方便。其它的 sql db 都要开服务,建连接。

    我在考虑每天分一个 db 文件,需要查询的话指定哪一天,其实有点像一种日志系统。
    dodo20120
        3
    dodo20120  
       2017-08-07 13:21:47 +08:00
    @ghostheaven 方便是方便,不过我只在小应用上用了,自从上次崩后,一般稍微读写多的我都换 pg 了,其实部署的话只要第一次弄好就行了,你这个每 2 秒就有一次操作,一天算下来已经不少数据了,后面数据 越来越大,不太建议使用 sqlite
    oh
        4
    oh  
       2017-08-07 13:33:09 +08:00
    不建议用 sqlite
    zhangbohun
        5
    zhangbohun  
       2017-08-07 13:35:30 +08:00 via Android
    不如试试 h2
    ghostheaven
        6
    ghostheaven  
    OP
       2017-08-07 13:36:51 +08:00 via Android
    @dodo20120 那拆分数据库呢?每天 0 点开始用新的 db 文件,这样每个应该都不会太大。
    cs8425
        7
    cs8425  
       2017-08-07 14:34:46 +08:00
    有試過跟 LZ 相似的應用(node.js + sqlite3), 60 秒 1~3 筆, 2015/09/04 上線到現在,
    大概 240 萬筆, db 檔大概 144MB, 沒問題
    akira
        8
    akira  
       2017-08-07 14:39:00 +08:00
    那你还真不如直接写日志
    Soar360
        9
    Soar360  
       2017-08-07 14:48:26 +08:00
    http://www.cnblogs.com/nnhy/p/BigData.html

    SQLite 单表 4 亿参数调整合适的话,每秒插入 2W 没问题。
    mansur
        10
    mansur  
       2017-08-07 15:01:25 +08:00
    如果始终只有一个线程在读写,保证没有并发情况就可用,如果有并发就不能用,会堵塞
    hjc4869
        11
    hjc4869  
       2017-08-07 15:01:54 +08:00 via Android
    sqlite 没有并发就放心用。
    ghostheaven
        12
    ghostheaven  
    OP
       2017-08-07 15:53:09 +08:00
    @mansur 那我就放心地分表了,预计每天数据库也就是 200M 左右

    @hjc4869
    @mansur 没有并发,基于 Node.js ,跟 @cs8425 一样,只是频率高一些。

    @akira 日志的查找不方便,偶尔需要回顾查找历史数据,并做一些简单的计算和筛选。

    多谢楼上各位了~
    cchange
        13
    cchange  
       2017-08-07 23:52:04 +08:00
    @ghostheaven 请教一下 请问 sqlite 是否比较成熟的数据库工具,我知道 navicat 有 navicat for sqlite,但是授权比较贵,我想在部署软件的时候放一个 GUI 的管理器,便于维护

    我搜了一下 有 http://sqlitebrowser.org/
    https://www.sqlite.org/cvstrac/wiki?p=ManagementTools

    可惜之前听说管理工具对中文支持度比较差,DB Browser for SQLite 测试没有问题。

    我主要开发语言是 C#,新手...
    mingweili0x
        14
    mingweili0x  
       2017-08-08 01:23:27 +08:00
    为什么不直接写在 log 文件里,听着需求就像是日志啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2886 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:22 · PVG 17:22 · LAX 01:22 · JFK 04:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.