MYSQL优化案例

1、加索引
2、数字类型规范
3、加冗余字段
4、用in、union all 替换or
5、减少模糊查询字段
6、3张表以上SQL拆分
7、硬件扩展
8、其他

1.MySQL优化案例-加索引
这个不用列举具体例子了,给大家看下TMS的两张张表,这些都是优化的时候加上的索引,
索引可以解决95%的sql性能问题!

2. MySQL优化案例-数字类型规范
数字类型规范基本的有:
1.不要有隐形转换, 2.作为条件不要加引号
这里写图片描述

3. MySQL优化案例-加冗余字段
冗余字段是反范式的,有时候为了性能,不得不在性能和范式之间做个平衡
直接上表,如下如果不冗余起来,
主要问题表现在,
1、为了一个子单关联一张很大的表
2、查询的时候很多都要 max、group by、order by 等
想想都很害怕
这里写图片描述

3 . MySQL优化案例-减少模糊查询
有人说:业务需求不同意,查询慢总比服务器挂掉强吧!
理是这个理,但是我们也可以做更多。
1.比如运单号等 不支持模糊查询,必须精确查询。
2.如下面这种查询方式:先模糊查询单表,在把查出来的结果带入自定义做精确查询。
这里写图片描述

4 . MySQL优化案例-SQL拆分1
原则上3张表以上要进行拆分,分清主次
拆分之后的SQL语句一些逻辑放到应用层,如查询结果组合、查询结果排序
这里写图片描述
这里写图片描述
这里写图片描述

MySQL优化案例-SQL拆分2
处理步骤:
加索引、优化SQL语句等都无效的时候。。。
1.分析SQL语句,拆分出来某个查询条件,查询出单表数据集合
2.把数据集合作为查询条件再带入二次自定义查询语句
3.开启多线程,把多线程查询结果组合到返回前端的集合里面
这里写图片描述
这里写图片描述

5 . MySQL优化案例-硬件扩展
这种方法简单粗暴高效,直接上案例吧
这里写图片描述
这里写图片描述
这里写图片描述

6 . MySQL优化案例-其他
1、Limit加到 子查询里面
2、强制索引、全文索引
3、应用服务器和数据库服务器压力平衡
4、order by limit 放到每个子查询下面

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值