蚂蚁金服架构师带你学优化一 MySql 性能优化实战

博主:starsstars 2023-06-12 181 0条评论

概要

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. 将表分区

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

  • 1. 步步惊心,MySql 优化满地是坑;

  • 2. 丛林密布,优化有图可循;

  • 3. 悔恨难当,只因用错索引;

  • 4. 披荆斩棘,执行计划让你脱离深坑;

  • 5. 豁然开朗,SQL 优化有方可循

一个 SQL 引发的思考

常用的优化方式

反范式化设计

三大范式

  

物理设计

索引是什么?

最简单的索引

稍微复杂点的索引

MySql 中的索引

索引分类

总结

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


微信扫一扫
The End

发布于:2023-06-12,除非注明,否则均为柠檬博客原创文章,转载请注明出处。