cnbattle
V2EX  ›  问与答

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

  •  
  •   cnbattle · Apr 3, 2020 via Android · 5562 views
    This topic created in 2261 days ago, the information mentioned may be changed or developed.

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

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

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

    Supplement 1  ·  Apr 3, 2020
    再具体说下场景:

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