• 请不要在回答技术问题时复制粘贴 AI 生成的内容
blueorange
V2EX  ›  程序员

mysql 单表数据过大最好的处理方式

  •  
  •   blueorange · Apr 1, 2019 via Android · 9757 views
    This topic created in 2627 days ago, the information mentioned may be changed or developed.

    已经严重影响查询性能,纯粹添加索引会影响插入性能,请问还有其他方式么

    25 replies    2019-04-02 16:07:13 +08:00
    blueorange
        1
    blueorange  
    OP
       Apr 1, 2019 via Android
    已经达到千万级别
    jyounn
        2
    jyounn  
       Apr 1, 2019
    分区
    lhx2008
        3
    lhx2008  
       Apr 1, 2019 via Android
    先加索引啊,不加索引你事务插入要锁表的
    zuoakang
        4
    zuoakang  
       Apr 1, 2019 via Android
    分区,分表,分库。
    reus
        5
    reus  
       Apr 1, 2019   ❤️ 1
    千万不算过大
    索引该用就用
    jabin88
        6
    jabin88  
       Apr 1, 2019
    同步到 mongodb 或者 es,这样就不用查 mysql 了,再多 10 倍都可以
    blueorange
        7
    blueorange  
    OP
       Apr 1, 2019
    @jabin88 有什么好的方案实时同步吗?
    dapang1221
        8
    dapang1221  
       Apr 1, 2019
    比较好奇以前不加索引你是怎么查的……语句都是全表扫么……
    ducklyl
        9
    ducklyl  
       Apr 1, 2019
    如果只是影响查询性能,可以把数据同步到 es 或 solr,使用全文检索提高查询性能
    sujin190
        10
    sujin190  
       Apr 1, 2019
    如果只是 4 到 5 项索引,写性能影响不大吧,除非你写特别多,如果每秒过千的写,估计也不是单表千万数据的问题了
    千万级别对 mysql 数据真不算大,如果索引超过内存很多,倒是可以多加点内存,索引和查询缓存的效果还是很明显的
    chaleaochexist
        11
    chaleaochexist  
       Apr 1, 2019
    分区.分表.分库.
    opengps
        12
    opengps  
       Apr 1, 2019
    每月重复一次。如果不是分布式 DRDS 那种方案的话:
    先考虑表分区
    然后考虑分表
    然后考虑分库
    blueskea
        13
    blueskea  
       Apr 1, 2019 via Android
    拆表,分区,读写分离,canal 同步到 hive es tidb 之类
    opengps
        14
    opengps  
       Apr 1, 2019
    补上我的经历: https://www.opengps.cn/Blog/View.aspx?id=284
    GPS 密集写入案例:单机数据库阶段,sql server 使用表分区,线上应用最大单日写入 1500 万行,最大单表大小 12 亿
    没有更高实际应用数值的原因是替换了别的数据库
    mmdsun
        15
    mmdsun  
       Apr 1, 2019 via Android
    单表行数超过 500 万行或者单表容量超过 2 GB,推荐进行分库分表。
    qianji201712
        16
    qianji201712  
       Apr 1, 2019
    @opengps 大佬,学习了!
    opengps
        17
    opengps  
       Apr 1, 2019
    @qianji201712 怪我嘴拙,当时是 2012 年,设计这张表的时候不会写文章,至今才整理成可以让人看懂的文字
    iyaozhen
        18
    iyaozhen  
       Apr 1, 2019 via Android
    要看几千万还有未来的趋势,1 亿以下表分区就行了。

    再多就要分库分表了,业务层也需要改动
    love
        19
    love  
       Apr 1, 2019
    现在都 ssd,千万算个啥,除非你没索引全表扫描了
    hilbertz
        20
    hilbertz  
       Apr 1, 2019
    128g 内存,ssd 硬盘,几十亿都没问题
    Radom
        21
    Radom  
       Apr 1, 2019
    千万也算大?
    mineqiqi
        22
    mineqiqi  
       Apr 1, 2019
    千万级别的加索引完全能解决
    Joyboo
        23
    Joyboo  
       Apr 1, 2019
    还以为是每日千万级别。。
    CANTI
        24
    CANTI  
       Apr 1, 2019
    不推荐分区,千万级别数据单表索引合理日常增删改查完全是没问题的,再多的话再考虑分表分库
    Evilk
        25
    Evilk  
       Apr 2, 2019
    之前单表数据在 5000W 左右,用的分区,后面如果持续增长的话,可以考虑 es,分表.分库不太建议,业务层也要改动,成本太高
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5900 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 195ms · UTC 02:13 · PVG 10:13 · LAX 19:13 · JFK 22:13
    ♥ Do have faith in what you're doing.