大表优化小结

大表优化

大表通常是指表数据达到一定程度,使增删查改的性能严重下滑的情况。优化思路:先从索引和sql优化入手,辅以加缓存、读写分离。接着再考虑进行分库分表,分库分表作为靠后的手段进行考虑。最后才是硬件优化。

1.索引优化

1.1 常用于查询条件的
1.2 优先选用唯一索引
1.3 使用短字段作为索引字段
1.4 字符字段尽量不做主键
1.5 尽量不用外键,程序保证

2.慢sql优化

2.1.查看执行计划 explain
2.2.如果有告警信息,查看告警信息 show warnings;
2.3.查看SQL涉及的表结构和索引信息
2.4.根据执行计划,思考可能的优化点
2.5.按照可能的优化点执行表结构变更、增加索引、SQL改写等操作
2.6.查看优化后的执行时间和执行计划
2.7.如果优化效果不明显,重复第四步操作

3.增加缓存

3.1浏览器或客户端 
3.2应用层(redis)
3.3数据库访问层 sql语句缓存,查询记录缓存

4.分库分表

4.1水平拆分
	保持数据表结构不变,按照分片策略存储数据。比如:订单表按照时间拆分为多个订单表,避免单一表数据过大。
	优点:可以支持超大的数据量,代码逻辑改动小;
	缺点:带来分片事务,跨节点join,逻辑复杂等问题。
4.2垂直拆分
	根据表字段的相关性对数据表进行拆分。
	优点:使字段数变少,简化表结构。
	缺点:拆表后带来更多joini操作,增加事务复杂度。
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值