多表left join where is null 的优化_蚂蚁金服架构师带你学优化一MySql性能优化实战...

9f4bb9d9898c517808031b5523daca04.png

概要:

Mysql的优化,大体可以分为三部分:索引的优化,sql语句的优化,表的优化。本文主要帮助自己整理思路,也可作为一个学习MySQL优化的提纲。

索引的优化

  1. 只要列中含有NULL值,就最好不要在此例设置索引,复合索引如果有NULL值,此列在使用时也不会使用索引
  2. 尽量使用短索引,如果可以,应该制定一个前缀长度
  3. 对于经常在where子句使用的列,最好设置索引,这样会加快查找速度
  4. 对于有多个列where或者order by子句的,应该建立复合索引
  5. 对于like语句,以%或者‘-’开头的不会使用索引,以%结尾会使用索引
  6. 尽量不要在列上进行运算(函数操作和表达式操作)
  7. 尽量不要使用not in和<>操作

sql语句的优化

  1. 查询时,能不要就不用,尽量写全字段名
  2. 大部分情况连接效率远大于子查询
  3. 多使用explain和profile分析查询语句
  4. 查看慢查询日志,找出执行时间长的sql语句优化
  5. 多表连接时,尽量小表驱动大表,即小表 join 大表
  6. 在千万级分页时使用limit
  7. 对于经常使用的查询,可以开启缓存

表的优化

  1. 表的字段尽可能用NOT NULL
  2. 字段长度固定的表查询会更快
  3. 把数据库的大表按时间或一些标志分成小表
  4. 将表分区
ae03cee97313615c8e18e6d558e990a1.png

蚂蚁金服架构师带你学优化一MySql性能优化实战(附详细视频教程)

9df3db4e7296c3dea81589545ce71f04.png

文末有视频教程获取方式

  • 1.步步惊心,MySql优化满地是坑;
  • 2.丛林密布,优化有图可循;
  • 3.悔恨难当,只因用错索引;
  • 4.披荆斩棘,执行计划让你脱离深坑;
  • 5.豁然开朗,SQL优化有方可循

一个SQL引发的思考

0437e0489f445c4fed9f3a3cb19cadf9.png

常用的优化方式

894f3602776e4aa76728bf63b644a996.png

反范式化设计

f88391cc591de45a493cfd31bf86a91a.png

三大范式

b6433e99faa56ec9e2a4153fd7857443.png
d27d52bf58b5604a91ff51ac57aad102.png
515d6154054cb71f4f835499b031ee94.png

索引是什么?

bd988ba32cb2d34c93942c010a5cc7fe.png

最简单的索引

0bc6a12b6a1575cfcd05e0e0bbe858bb.png

稍微复杂点的索引

ed17c334ae8c9c8522345bd77740adb2.png

MySql中的索引

9e57c8dd5eeb4a5974c8d9df4d6c9836.png

索引分类

916af256d7ef5b08f48048c4a9518067.png

总结

优化通常都需要三管齐下:不做、少做、快速地做。我们希望这里的案例能够帮助你将理论和实践联系起来。


本文的重点是MySql性能优化。需要更详细思维导图和视频资料的:“转发+私信”“资料”二字,即可免费获取

同时我经过多年的收藏目前也算收集到了一套完整的学习资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、Jvm性能调优、Spring,MyBatis,Nginx源码分析,Redis,ActiveMQ、、Mycat、Netty、Kafka、Mysql、Zookeeper、Tomcat、Docker、Dubbo、Nginx等多个知识点高级进阶干货,希望对想成为架构师的朋友有一定的参考和帮助

ec7f84e875e9ddd5dbef984b9cec8053.png
d532af59a5de9b66a31b23cae3a11494.png
de47856f4bcfa492622c386d5a98027a.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值