letitbesqzr
V2EX  ›  数据库

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

  •  
  •   letitbesqzr · Oct 12, 2018 · 4692 views
    This topic created in 2945 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
    tuding
    Oct 12, 2018
    1
    存成本地文件, mysql 保存文件路径?
    weizhen199
    weizhen199
    Oct 12, 2018
    2
    你要简单就 blob text,最好分下表
    a3mao
    a3mao
    Oct 12, 2018
    3
    mongo 这个就是文档数据库
    mason961125
    mason961125
    Oct 12, 2018
    4
    mongo + 1
    feloxx
    feloxx
    Oct 12, 2018
    5
    mg 有单条 16mb 的限制
    注意一下这个就是,mg 也不错

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


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