向各位老师请教一下数据库选型问题哈 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Lunaleeguo
V2EX    程序员

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

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

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

    31 条回复    2019-11-22 09:25:57 +08:00
    zhoudaiyu
        1
    zhoudaiyu  
    PRO
       2019-11-21 07:49:43 +08:00 via iPhone
    Postgre ?
    realpg
        2
    realpg  
    PRO
       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  
    PRO
       2019-11-21 08:03:56 +08:00
    @Lunaleeguo #3
    还有 你提到的 MYSQL MONGODB 这俩完全都不是一个类型的
    前面是关系的,后面是 KV 的
    你要结合你业务的查询和写入类型 确认是否适合
    realpg
        5
    realpg  
    PRO
       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 +8: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     Solana     1166 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 17:56 PVG 01:56 LAX 10:56 JFK 13:56
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86