V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
cnbattle
V2EX  ›  问与答

千万级数据,数据库优化方向有哪些

  •  
  •   cnbattle · 2020-04-03 08:12:15 +08:00 via Android · 4588 次点击
    这是一个创建于 1674 天前的主题,其中的信息可能已经有所发展或是发生改变。

    情况说明:目前使用 MySQL, 四个字段,低频短时间大量写入百万到千万,中等更新需求两分钟左右一次几十条数据,正常的范围查询需求

    分库分表 ,但范围查询会有些不方便

    或使用别的啥数据库更适合这种场景

    第 1 条附言  ·  2020-04-03 13:52:34 +08:00
    再具体说下场景:

    类似一物一码,盒码箱码关联,批量出货这样,防伪溯源这样
    26 条回复    2020-04-07 10:07:17 +08:00
    ebony0319
        1
    ebony0319  
       2020-04-03 08:15:31 +08:00 via Android
    hbase,但是灵活性下降一点。
    MiaRunis
        2
    MiaRunis  
       2020-04-03 08:18:15 +08:00 via iPhone
    钱多要省事直接上 aws aurora/polardb,疼逊云的 cynosdb 没人用过不知道啥情况。这几个都读写分离,阿里直接上了 rdma,操作层面不改靠性能硬撑,大多数情况不需要再分表
    aec4d
        3
    aec4d  
       2020-04-03 09:07:35 +08:00 via iPhone
    如果查询语句很简单,没有事务要求可以上 ES, clickhouse 这些
    virusdefender
        4
    virusdefender  
       2020-04-03 09:32:02 +08:00   ❤️ 1
    tidb 加队列异步写入
    opengps
        5
    opengps  
       2020-04-03 09:33:40 +08:00
    如果必须用关系型,看下我的这篇分享: https://www.opengps.cn/Blog/View.aspx?id=284&from=v2ex
    线上业务实际承载到过每秒 1500 写入,表分区单表总行数 15 亿。没到瓶颈不过后来改 nosql 了
    dalibaxiaoliba
        6
    dalibaxiaoliba  
       2020-04-03 09:42:36 +08:00
    支持一下 TiDB,兼容 Mysql,加上最新的 Tiflash,速度可以的
    xyjincan
        7
    xyjincan  
       2020-04-03 10:16:04 +08:00 via Android
    现在有啥存在的问题
    idblife
        8
    idblife  
       2020-04-03 10:24:41 +08:00
    oracle 分区表
    这数据量太小了
    xsm1890
        9
    xsm1890  
       2020-04-03 11:00:29 +08:00
    千万级别 mysql 压力应该也不算特别大吧。按时间分区,索引合理的话应该不会很慢
    fancy111
        10
    fancy111  
       2020-04-03 11:04:37 +08:00
    亿级再说吧
    gz911122
        11
    gz911122  
       2020-04-03 11:04:56 +08:00
    千万级别 mysql 也没太大压力
    正常用就行了
    optional
        12
    optional  
       2020-04-03 11:12:54 +08:00
    放队列慢慢写呗。 或者来个 cssandra hbase
    tairan2006
        13
    tairan2006  
       2020-04-03 11:14:05 +08:00
    你这写的啥,时序数据的话,可以用时序数据库
    bnm965321
        14
    bnm965321  
       2020-04-03 12:39:04 +08:00
    放队列,然后 batch insert/batch update
    cnbattle
        15
    cnbattle  
    OP
       2020-04-03 13:50:04 +08:00
    @fancy111 有个表已经 17 亿了 2333...
    cnbattle
        16
    cnbattle  
    OP
       2020-04-03 13:53:29 +08:00
    @xyjincan 查询慢
    hbolive
        17
    hbolive  
       2020-04-03 14:05:54 +08:00
    确实,千万级别 mysql 其实没啥压力的。。
    zclzhangcl
        18
    zclzhangcl  
       2020-04-03 14:12:23 +08:00
    千万?没有复杂查询,到 5 亿也没问题
    cnbattle
        19
    cnbattle  
    OP
       2020-04-03 14:20:17 +08:00
    @zclzhangcl
    @hbolive
    大佬 ,你们 mysql 架构大概什么样的自己搞得还是用云的, 公司这样目前是用阿里云 rds mysql 4c8g 的高可用版上
    meeop
        20
    meeop  
       2020-04-03 14:45:15 +08:00
    千万级别 mysql 都不用分表
    我司规范是 mysql 单表最大 10 亿
    另外 tidb 是最多快好省的方法
    qq976739120
        22
    qq976739120  
       2020-04-03 14:58:45 +08:00
    @meeop 单表 10 亿?????
    hbolive
        23
    hbolive  
       2020-04-03 22:44:12 +08:00
    @cnbattle 是我们内网的刀片服务器,几千万数据,表结构比较简单,感觉没啥问题。。
    hooopo
        24
    hooopo  
       2020-04-04 00:56:30 +08:00
    千万就不用什么特别的方法了,升级下硬件就行
    noparking188
        25
    noparking188  
       2020-04-04 07:46:38 +08:00
    我们公司是 mysql 操作全部走 Kafka 队列,数据量很大的表,数据产品会研究垂直拆表,一般表通过独有的业务 ID 做水平分库分表,以上前提是数据库操作全部走接口,压力丢给中间件,这样各业务方不用关心底层数据库,调接口请求资源就行
    zclzhangcl
        26
    zclzhangcl  
       2020-04-07 10:07:17 +08:00
    你这个场景是多写少读。先上 mysql 单表再说,等数据量到了上索引也慢(预估单表数据量不小于 5 亿)的情况下, 再考虑分库分表
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2502 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:40 · PVG 23:40 · LAX 08:40 · JFK 11:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.