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

概要

Mysql的优化,大致能够分为三部分:索引的优化,sql语句的优化,表的优化。本文主要帮助本身整理思路,也可做为一个学习MySQL优化的提纲。sql

索引的优化

  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中的索引

索引分类

总结

优化一般都须要三管齐下:不作、少作、快速地作。咱们但愿这里的案例可以帮助你将理论和实践联系起来。数据库


本文的重点是MySql性能优化。须要更详细视频资料的能够评论区留言或者后台私信便可

相关文章
相关标签/搜索