mysql大表

作者: Darui30 | 来源:发表于2019-11-11 15:12 被阅读0次

其实就是把别的文章脑图抄一下,顺便自己动动脑子消化一下,平时工作中比较好用


graph LR
A[大表] -->B[数据量:千万]

    B-->B1[可能达到亿或更高]
    B-->B2[是一个相对稳定的数据量]
    B-->B3[不应该有这么多数据]

A --> C[对象:数据表]

    C --> C1[状态表]
        C1 --> C12[OLTP业务方向]
    C --> C2[流水表]
        C2 -->C21[OLTP:业务拆分,分布式存储的角度进行设计]
        C2 -->C22[OLAP:设计数据统计需求和存储的分不熟扩展]
    C --> C3[配置表]
        C3 --> C31[通用服务,配置应该是小而简,避免大]

A -->D[目标:优化]
    D -->D1[规范化]
    D -->D2[业务层优化]
        D2-->D21[业务拆分]
            D21-->D211[混合业务拆分成独立业务]
            D21-->D212[将状态和历史数据分离]
        D2-->D22[数据拆分]
            D22-->D221[按时间拆分]
                D221-->D2211[按照日期维度拆分,20190101]
                D221-->D2212[按照周月维度拆分,201901]
                D221-->D2213[按照季度维度拆分]
            D22-->D222[采用分区模式]
                D222-->D2221[采用hash,range等方式]
        D2-->D23[读多写少优化场景]
            D23-->D231[缓存:redis]
        D2-->D24[读少写多优化场景]
            D24-->D241[异步提交]
            D24-->D242[队列技术]
            D24-->D243[降低写入频率]
    D -->D3[架构层优化]
        D3-->D31[系统水平扩展场景]
            D31-->D311[采用中间件,mycat\shardingSphere...]
            D31-->D312[读写分离技术]
            D31-->D313[采用负载均衡技术]
                D313-->D3131[LVS]
                D313-->D3132[域名解析]
        D3-->D32[兼顾OLTP+OLAP业务场景]
            D32-->D321[NewSQL体系]
                D321-->D3211[Tidb]
        D3-->D33[离线统计的业务场景]
            D33-->D331[NoSQL]
                D331-->D3311[适合兼容mysql协议的数据仓库体系:inforbright/ColumnStore]
                D331-->D3312[基于列式存储,属于异构方向,如HBase]
            D33-->D332[数仓]
                D332-->D3321[基于MPP架构,如使用Greenplum统计T+1统计]
    D -->D4[数据库优化]
        D4-->D41[事务优化]
            D41-->D411[根据业务场景选择事务原型,是否是强事务依赖]
            D41-->D412[事务降为策略]
                D412-->D4121[存储过程转化为透明的SQL]
                D412-->D4122[DDL操作转换为DML操作]
                D412-->D4123[Delete操作转换为高效操作]
                    D4123-->D41231[rename操作]
                    D4123-->D41232[根据时间分表]
        D4-->D42[SQL优化]
            D42-->D421[SQL语句简化]
            D42-->D422[尽量避免复杂查询]
            D42-->D423[SQL中尽可能避免发连接:not in,not exists反连接]
            D42-->D424[SQL中间可能避免半连接:in,exists半连接]
        D4-->D43[索引优化]
            D43-->D431[必须有pk]
            D43-->D432[SQL查询基于索引或者唯一性索引]
            D43-->D433[尽可能杜绝范围数据查询]
    D -->D5[管理优化]
        D5-->D51[数据清理如何做]
            D51-->D511[冷热数据分离]
        D5-->D52[数据变更如何做]
            D52-->D521[在线变更使用pt-ost等工具]
        D5-->D53[尽可能变数据碎片]

参考连接
如何优化MySQL千万级大表,我写了6000字的解读

相关文章

  • mysql大表

    其实就是把别的文章脑图抄一下,顺便自己动动脑子消化一下,平时工作中比较好用 参考连接如何优化MySQL千万级大表,...

  • 【MySQL】如何快速删除大表

    前言:MySQL运维内参中有提到如何快速删除大表。看到书中案列说drop大表的时候导致MySQL实例夯住了,但是本...

  • Mysql学习——数据库基础操作(1)

    Mysql创建数据库Mysql删除数据库Mysql创建表Mysql删除表Mysql添加表数据Mysql修改表数据M...

  • MySQL 大表优化

    1 数据库基本设计规范 1.1 所用的表使用InnerDB存储引擎 1.2 所有的 表都要有备注信息 1.3 要尽...

  • Mysql大表优化

    首先切分是最好不能做首选的方案。在不切分的情况下:1.优化索引2.加缓存 memcached,redis3.以上都...

  • mysql大表优化

    当MySQL单表记录过大时,CRUD的效率会受到很大的影响,可以参考如下方式进行优化。 限定数据范围务必限制不带任...

  • mysql大表优化

    当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直...

  • MySQL大表优化

    当MySQL单表记录数过大时,增删改查性能都会急剧下降,如何优化? 单表优化 除非单表数据未来会一直不断上涨,否则...

  • mysql 查询优化

    Mysql优化之高级 一、exists和in - - - 小表驱动大表 前言: 50010000和10000500...

  • MySQL分区表

    确认mysql是否支持分区表 mysql分区表的特点 创建mysql数据表为hash表 常用mysql分区的类型 ...

网友评论

    本文标题:mysql大表

    本文链接:https://www.haomeiwen.com/subject/rtjtictx.html