V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
letitbesqzr
V2EX  ›  数据库

较多的文本数据,存在什么数据库合适?

  •  
  •   letitbesqzr · 2018-10-12 13:32:49 +08:00 · 3664 次点击
    这是一个创建于 2264 天前的主题,其中的信息可能已经有所发展或是发生改变。

    数据特点

    1. 类似 "文章历史" 这样的记录,每次保存都会全文保存下,内容是全 html,单条数据会比较大,条数并不是很多
    2. 不需要对文本进行检索,只是需要能够查出记录就行。
    3. 数据量不算是特别大,大概 100g 左右,一个月 10g 的速度增长

    目前方案以及遇到的问题

    目前数据都直接存放在 mysql 中,但是对 mysql 进行备份的时候非常不方便,这些历史数据不是特别的重要,其实不需要和其他业务数据一起进行备份。

    想问问各位 v 友,类似的需求,使用什么数据库保存会比较方便?

    15 条回复    2019-01-03 14:06:14 +08:00
    tuding
        1
    tuding  
       2018-10-12 13:38:10 +08:00
    存成本地文件, mysql 保存文件路径?
    weizhen199
        2
    weizhen199  
       2018-10-12 13:40:22 +08:00
    你要简单就 blob text,最好分下表
    a3mao
        3
    a3mao  
       2018-10-12 13:42:10 +08:00
    mongo 这个就是文档数据库
    mason961125
        4
    mason961125  
       2018-10-12 14:06:26 +08:00
    mongo + 1
    feloxx
        5
    feloxx  
       2018-10-12 14:14:17 +08:00
    mg 有单条 16mb 的限制
    注意一下这个就是,mg 也不错

    如果要做全文索引,也可以拿 es 来存
    letitbesqzr
        6
    letitbesqzr  
    OP
       2018-10-12 14:20:14 +08:00
    @mason961125 #4
    @a3mao #3
    @weizhen199 #2
    @tuding #1
    @feloxx #5


    感谢,我去尝试下 mongodb
    cloverii
        7
    cloverii  
       2018-10-12 14:24:22 +08:00
    我们是在 mysql 里存条记录,文本放 kv 数据库
    letitbesqzr
        8
    letitbesqzr  
    OP
       2018-10-12 14:28:13 +08:00
    @cloverii #7 是什么 kv 数据库呢?
    cloverii
        9
    cloverii  
       2018-10-12 14:32:02 +08:00
    @letitbesqzr 自研的……最近为了检索,准备上 ES 了
    boris1993
        10
    boris1993  
       2018-10-12 14:35:19 +08:00 via Android
    @letitbesqzr 8# 我记得就是 Key-Value 数据库,比如 Redis 这样的?
    letitbesqzr
        11
    letitbesqzr  
    OP
       2018-10-12 14:36:55 +08:00
    @cloverii #9 膜拜大厂,我们考虑过存储 es,有 es 大数据方面的一些经验,但是这数据不检索,存 es 有点浪费性能了。
    likuku
        12
    likuku  
       2018-10-12 19:40:59 +08:00   ❤️ 1
    看需求,MongoDB 是挺适合(就是吃硬盘比较猛),
    不求特别快的速度,且文件名可快检索(重名率低) hadoop 的 hdfs 也可以,直接按路径信息+文件名 存下,取的时候也一样。

    至少它们都可以集群化扩展,hadoop 也是需要一些学习成本。


    再者,可以参考图片型网站的存储方式:文档(html) 按目录保存成文件,路径信息保存在 DB 里 (mysql 就行)。文件可以保存在 带冗余的 ZFS / btrfs 等支持 snapshot 的高级文件系统,或者更高级的专业存储设备里。
    这样,你再备份就相对简单很多了,db 的路径信息相对就小的多,
    文件嘛,有了快照,就可以机器空闲时间把快照版本的文件 rsync 之类工具传输到专用备份设备上去。


    习惯了 SQL 的话,PostgreSQL 也可以考虑,它字符串类型可以支持到 1GB 大小(你一个文档有这么大么?):


    "In any case, the longest possible character string that can be stored is about 1 GB. "

    来源:
    PostgreSQL: Documentation: 10: 8.3. Character Types :
    https://www.postgresql.org/docs/10/static/datatype-character.html

    8.3. 字符类型 | PostgreSQL 中文文档 9.3 :
    https://wizardforcel.gitbooks.io/postgresql-doc/64.html
    letitbesqzr
        13
    letitbesqzr  
    OP
       2018-10-12 21:56:42 +08:00
    @likuku #12 感谢那么详细的回复,MongoDB 和 存文件数据库存路径 我们再考虑下业务上哪个更合适。
    mutalisk
        14
    mutalisk  
       2018-10-13 16:55:03 +08:00
    LevelDB
    RocksDB
    dezhou9
        15
    dezhou9  
       2019-01-03 14:06:14 +08:00 via Android
    s3
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1158 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:33 · PVG 02:33 · LAX 10:33 · JFK 13:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.