V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
letitbesqzr
V2EX  ›  数据库

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

  •  
  •   letitbesqzr · Oct 12, 2018 · 4218 views
    This topic created in 2757 days ago, the information mentioned may be changed or developed.

    数据特点

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

    目前方案以及遇到的问题

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

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

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

    如果要做全文索引,也可以拿 es 来存
    letitbesqzr
        6
    letitbesqzr  
    OP
       Oct 12, 2018
    @mason961125 #4
    @a3mao #3
    @weizhen199 #2
    @tuding #1
    @feloxx #5


    感谢,我去尝试下 mongodb
    cloverii
        7
    cloverii  
       Oct 12, 2018
    我们是在 mysql 里存条记录,文本放 kv 数据库
    letitbesqzr
        8
    letitbesqzr  
    OP
       Oct 12, 2018
    @cloverii #7 是什么 kv 数据库呢?
    cloverii
        9
    cloverii  
       Oct 12, 2018
    @letitbesqzr 自研的……最近为了检索,准备上 ES 了
    boris1993
        10
    boris1993  
       Oct 12, 2018 via Android
    @letitbesqzr 8# 我记得就是 Key-Value 数据库,比如 Redis 这样的?
    letitbesqzr
        11
    letitbesqzr  
    OP
       Oct 12, 2018
    @cloverii #9 膜拜大厂,我们考虑过存储 es,有 es 大数据方面的一些经验,但是这数据不检索,存 es 有点浪费性能了。
    likuku
        12
    likuku  
       Oct 12, 2018   ❤️ 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
       Oct 12, 2018
    @likuku #12 感谢那么详细的回复,MongoDB 和 存文件数据库存路径 我们再考虑下业务上哪个更合适。
    mutalisk
        14
    mutalisk  
       Oct 13, 2018
    LevelDB
    RocksDB
    dezhou9
        15
    dezhou9  
       Jan 3, 2019 via Android
    s3
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   797 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 20:30 · PVG 04:30 · LAX 13:30 · JFK 16:30
    ♥ Do have faith in what you're doing.