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

如何优雅的实现千万级以上数据存储与读取?

  •  
  •   IfEles · 2021-04-16 21:48:37 +08:00 · 3050 次点击
    这是一个创建于 1344 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近有个需求,做一个简单的比喻,比方说有一片海域养殖生蚝,海域里有上千个养殖点,每个养殖点有一串生蚝养殖基,每个生蚝有每个生蚝的一些信息字段,这样大概有四张表:海域表 /养殖点表 /养殖基表 /生蚝表,数据量大概会有千万级以上,业务场景需要读的场景比较多,写的话压力不大也可以用中间件分批写入,如果用 mysql 这类关系型数据库,感觉有点扛不住,V 友们有这方面的经验吗?或者有别的 DB 可以推荐的,感谢了~
    第 1 条附言  ·  2021-04-19 15:42:15 +08:00
    多谢各位大佬,有时间了我找两台服务器试试分库分表模拟一下数据测试一下,对了忘记说了,数据中可能会有部分空间数据,这个时候是不是 postgresql 相对于 mysql 更具优势,但是 postgresql 没玩过分库分表不知道坑多不多
    19 条回复    2021-04-21 15:32:33 +08:00
    manami
        1
    manami  
       2021-04-16 22:03:54 +08:00
    如果只是读的场景多而写的压力不大的话,千万级其实用 mysql 就行,索引做好
    yeqizhang
        2
    yeqizhang  
       2021-04-16 22:13:30 +08:00 via Android
    千万级 mysql 还是没问题的,我建议给你们前面三个表加编码,编码不能修改,然后生蚝的编码就是 00100010001xxxx 这样编码,这样加个索引后不用关键查询直接模糊查询
    cmdOptionKana
        3
    cmdOptionKana  
       2021-04-16 22:19:37 +08:00
    建议生成伪数据试一下,反正伪数据也很好弄不麻烦。
    rekulas
        4
    rekulas  
       2021-04-16 23:22:29 +08:00
    我们单表最大就在 x 千万级,配个 1w 多的机器毫无压力,朋友的 mysql 也有在亿级使用的,不过由于特殊查询的原因,已经在考虑换数据库
    如果还担心 hold 不住,直接上云,阿里 polar 入门级一年也就几千,我们也在使用感觉挺棒,感觉普通亿级数据支撑应该问题不大
    zhady009
        5
    zhady009  
       2021-04-16 23:31:05 +08:00
    数据仓库?
    domodomo
        6
    domodomo  
       2021-04-17 01:35:13 +08:00
    其实没什么压力,你要真觉得压力大,简单的拆表就行了,毕竟业务也不复杂。
    ch2
        7
    ch2  
       2021-04-17 01:35:24 +08:00 via iPhone
    mysql 问题不大,mongo 也行
    gBurnX
        8
    gBurnX  
       2021-04-17 08:30:58 +08:00
    建议你还是先预估一下数据 io 的特点与数量,一上来就说 mysql 扛不住是不理智的。
    skys215
        9
    skys215  
       2021-04-17 10:19:29 +08:00
    只读取的话,mysql 有个 archive 引擎
    maemual
        10
    maemual  
       2021-04-17 22:02:31 +08:00
    其实还是得看查询有多复杂,如果查询够简单、索引做好,单表千万根本不算事。我们还有单表五六十亿的呢,毫无问题。
    Evilk
        11
    Evilk  
       2021-04-18 15:01:03 +08:00 via iPhone
    @maemual 我们也是,单表上亿,毫无问题
    tony601818
        12
    tony601818  
       2021-04-18 15:40:21 +08:00
    > mysql 这类关系型数据库,感觉有点扛不住

    不要抹黑 mysql……想用非关系型的直接用,非关系型推荐上云提高开发效率。

    读多写少到底是多少读多少写?
    bthulu
        13
    bthulu  
       2021-04-19 08:51:33 +08:00
    只针对索引查询, Mysql 单表几百亿毫无压力
    misaka19000
        14
    misaka19000  
       2021-04-19 10:46:41 +08:00
    上千万的数据 1h1g 的 mysql 随便写
    no1xsyzy
        15
    no1xsyzy  
       2021-04-19 12:48:51 +08:00
    对于性能问题,在你实测之前抛出一句扛不住挺诡异的。
    毕竟所有的数据库中,关系型数据库的优化是做得最充分的

    你不应该写一些稀奇古怪的代码来提升运行效率,而应该采用最常用的写法,因为最常用的写法拥有最充分的优化。
    Goat121
        16
    Goat121  
       2021-04-19 15:40:19 +08:00
    千万级还优化啥啊。。
    godwinma
        17
    godwinma  
       2021-04-19 17:11:36 +08:00
    曾经我们的 mysql 但表 6 亿,也没什么问题,索引配置好。
    MrWhite
        18
    MrWhite  
       2021-04-19 20:03:38 +08:00
    @godwinma 6E?... 我们一千多万就分了。。
    godwinma
        19
    godwinma  
       2021-04-21 15:32:33 +08:00
    @MrWhite 嗯,配合每隔几天定时删除一批+每天基本写入 1000w+的数据,坚持了一段时间,后来每天写入越来越多,最后就拆了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1097 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:47 · PVG 02:47 · LAX 10:47 · JFK 13:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.