V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Lunaleeguo
V2EX  ›  程序员

向各位老师请教一下数据库选型问题哈

  •  
  •   Lunaleeguo · 2019-11-21 07:46:04 +08:00 via Android · 3859 次点击
    这是一个创建于 1858 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前单位有一个业务,前期数据库选型,数据量巨大,单张表数据起步有 1.5 亿个,以前没怎么接深入接触过数据库,起初还说就用我们常用的 Mysql 什么的,由于我们数据量巨大,而且需要最后的表越少越好,发现用 Mysql 不太适合。后面看到 MongoDB 貌似符合要求,所以过来向各位老师评估一下是否可行,或者更加适合的数据库也欢迎各位老师提提建议哈,这个跪谢大家了~

    31 条回复    2019-11-22 09:25:57 +08:00
    zhoudaiyu
        1
    zhoudaiyu  
       2019-11-21 07:49:43 +08:00 via iPhone
    Postgre ?
    realpg
        2
    realpg  
       2019-11-21 07:56:03 +08:00
    可选型的比较多
    取决于你们的专业运维擅长啥……
    你选了一个你们运维 DBA 都不精通的 这种中等规模数据量的优化一窍不通是没用的

    如果考虑商业数据库 选择更多
    Lunaleeguo
        3
    Lunaleeguo  
    OP
       2019-11-21 08:01:51 +08:00 via Android
    @realpg 好的,谢谢老哥建议哈,我们这边运维对 Mongo 还是比较熟悉的,考虑到以后这个数据量可能有个 10 倍的扩张,所以想提前规划考虑一个能满足这个数据量,查询起来速度也比较快的数据库。当然首先考虑的是一些比较常用大众点的,这样遇到问题查起来也比较方便。
    realpg
        4
    realpg  
       2019-11-21 08:03:56 +08:00
    @Lunaleeguo #3
    还有 你提到的 MYSQL MONGODB 这俩完全都不是一个类型的
    前面是关系的,后面是 KV 的
    你要结合你业务的查询和写入类型 确认是否适合
    realpg
        5
    realpg  
       2019-11-21 08:05:07 +08:00
    哦不是 KV 的 习惯就发出去了 是 NOSQL 的
    Lunaleeguo
        6
    Lunaleeguo  
    OP
       2019-11-21 08:06:47 +08:00 via Android
    @zhoudaiyu 好的,谢谢老哥,我先研究下你说的这个
    opengps
        7
    opengps  
       2019-11-21 08:11:22 +08:00 via Android
    这东西完全看业务,我早期版本 gps 轨迹用 SQL server 存了一个月数据 1. 5 亿无问题。不过考虑版权问题后来及时改了
    tinybaby365
        8
    tinybaby365  
       2019-11-21 08:25:05 +08:00 via iPhone
    业务没说清楚 OLAP,OLTP,还是兼顾?
    Lunaleeguo
        9
    Lunaleeguo  
    OP
       2019-11-21 08:27:12 +08:00 via Android
    @realpg 嗯嗯,对的,前面忘说了,业务上 KV 存储的也是更适合一些,所以我们暂定是用 MongoDB,如果后面实在找不到性能更优的就打算用这个了
    heiheidewo
        10
    heiheidewo  
       2019-11-21 08:33:39 +08:00
    KV 存储的话,可以考虑 leveldb , 毕竟不用太占内存,当然土豪可以忽略
    Lunaleeguo
        11
    Lunaleeguo  
    OP
       2019-11-21 09:09:23 +08:00 via Android
    @heiheidewo 好的,谢谢老哥建议,看了一下 LevelDB 一般是多机主备的形式搭建集群,我们目前只有一台机器了,哭瞎⊙﹏⊙
    fancy111
        12
    fancy111  
       2019-11-21 09:12:15 +08:00
    花钱买 oracle 不好吗?
    lzxz1234
        13
    lzxz1234  
       2019-11-21 09:24:39 +08:00
    考虑下 TiDB,天生集群,而且兼容 MySQL
    gemini767
        14
    gemini767  
       2019-11-21 09:29:56 +08:00 via iPhone
    MySQL 完全 hold 住,分库分表现成组件那么多,后期迁移也方便。不过也要看 dba 熟悉了
    murmur
        15
    murmur  
       2019-11-21 09:31:32 +08:00
    单表 1.5 不手动分表可能只有 oracle 了,oracle 可以直接配分区
    zjsxwc
        16
    zjsxwc  
       2019-11-21 09:36:14 +08:00
    mysql 可以的,公司全用 mariadb 的路过
    Lunaleeguo
        17
    Lunaleeguo  
    OP
       2019-11-21 10:02:40 +08:00 via Android
    @murmur 哈哈哈,可惜经费有限,而且现在机器也只有一台,不少朋友推荐了很多很优秀的分布式数据库,也没法去实施
    javapythongo
        18
    javapythongo  
       2019-11-21 11:42:37 +08:00
    postgre
    sadfQED2
        19
    sadfQED2  
       2019-11-21 12:08:51 +08:00 via Android
    我们 mysql 单表 16 亿数据,为啥不行呢
    tailf
        20
    tailf  
       2019-11-21 12:15:56 +08:00
    花钱买 Oracle 是一个不错的选择
    srx1982
        21
    srx1982  
       2019-11-21 13:02:05 +08:00
    我们单表 20 亿数据也是用的 mysql,表做了一下分区
    zjsxwc
        22
    zjsxwc  
       2019-11-21 15:45:35 +08:00
    查了下确定楼主是来乱带节奏的吗

    MySQL MyISAM 单表最大 64PB,InnoDB 单表最大 64TB
    mongoDB MMAPv1 单 Collection 最大 32TB
    PostgreSQL 单表最大 32TB
    Oracle 只要硬盘和操作系统允许就是无限
    FenixVu
        23
    FenixVu  
       2019-11-21 15:57:48 +08:00
    1.5 亿 mysql 完全没问题吧
    hhyvs111
        24
    hhyvs111  
       2019-11-21 16:03:11 +08:00
    分表就好了,单张表不要超过 1000 万
    fuis
        25
    fuis  
       2019-11-21 17:18:57 +08:00
    pg 和 mongo 随便选一个,我喜欢 pg
    miemiekurisu
        26
    miemiekurisu  
       2019-11-21 17:30:42 +08:00
    用什么数据库要看你想干嘛,根据业务和系统需要去选,你这什么前提都没有,只有个数据量,那随便挑哪个都可以。mysql 和 mongodb 都不是一个应用方向的东西
    cco
        27
    cco  
       2019-11-21 17:35:04 +08:00
    Hbase 其实也可以考虑,但是你没有说你们的应用场景。。 比如复杂查询关系?
    areless
        28
    areless  
       2019-11-21 18:39:37 +08:00 via Android
    取值的多,就用 hash 索引。模糊查询多就全文本索引。大于小于多,就 b 叉索引。没有 mysql 不行的,只怕你不会用。那个数据库啊分布式遍地开花的过往,是特殊年代产物~~~机器破,用的人多~~~大家都瞎折腾,搞出一套套不规范的东西。
    tab16360
        29
    tab16360  
       2019-11-21 18:50:19 +08:00 via Android
    es 不香吗
    v2hh
        30
    v2hh  
       2019-11-21 19:17:34 +08:00
    业务场景,不说别人怎么给你合理建议
    Lunaleeguo
        31
    Lunaleeguo  
    OP
       2019-11-22 09:25:57 +08:00 via Android
    @miemiekurisu 前面确实没有说清楚哈,业务偏向于 OLTP,目前初步是使用 mongoDB
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2720 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:28 · PVG 19:28 · LAX 03:28 · JFK 06:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.