MySQL大表优化思路【面试系列】

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


大表
数据量:千万
可能达到亿或更高
是一个相对稳定的数据量
不应该有这么多数据
对象:数据表
状态表
OLTP业务方向
流水表
OLTP:业务拆分,分布式存储的角度进行设计
OLAP:设计数据统计需求和存储的分不熟扩展
配置表
通用服务,配置应该是小而简,避免大
目标:优化
规范化
业务层优化
业务拆分
混合业务拆分成独立业务
将状态和历史数据分离
数据拆分
按时间拆分
按照日期维度拆分,20190101
按照周月维度拆分,201901
按照季度维度拆分
采用分区模式
采用hash,range等方式
读多写少优化场景
缓存:redis
读少写多优化场景
异步提交
队列技术
降低写入频率
架构层优化
系统水平扩展场景
采用中间件,mycat\shardingSphere...
读写分离技术
采用负载均衡技术
LVS
域名解析
兼顾OLTP+OLAP业务场景
NewSQL体系
Tidb
离线统计的业务场景
NoSQL
适合兼容mysql协议的数据仓库体系:inforbright/ColumnStore
基于列式存储,属于异构方向,如HBase
数仓
基于MPP架构,如使用Greenplum统计T+1统计
数据库优化
事务优化
根据业务场景选择事务原型,是否是强事务依赖
事务降为策略
存储过程转化为透明的SQL
DDL操作转换为DML操作
Delete操作转换为高效操作
rename操作
根据时间分表
SQL优化
SQL语句简化
尽量避免复杂查询
SQL中尽可能避免发连接:not in,not exists反连接
SQL中间可能避免半连接:in,exists半连接
索引优化
必须有pk
SQL查询基于索引或者唯一性索引
尽可能杜绝范围数据查询
管理优化
数据清理如何做
冷热数据分离
数据变更如何做
在线变更使用pt-ost等工具
尽可能变数据碎片

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值