前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql优化学习笔记

mysql优化学习笔记

作者头像
allsmallpig
发布2021-02-25 11:17:10
3420
发布2021-02-25 11:17:10
举报
文章被收录于专栏:allsmallpi博客

优化sql的一般步骤

  1. 通过show status了解各种sql的执行频率
  2. 定位执行效率低的sql语句
  3. 通过explain分析效率低的sql
  4. 通过show profile分析sql
  5. 通过trace分析优化器如何选择执行计划
  6. 确定问题,采取措施优化

索引优化措施

  1. mysql中使用索引的典型场景
    1. 匹配全值,条件所有列都在索引中而且是等值匹配
    2. 匹配值的范围查找,字段必须在索引中
    3. 匹配最左前缀,复合索引只会根据最左列进行查找
    4. 仅仅对索引进行查询,即查询的所有字段都在索引上
    5. 匹配列前缀,比如like 'ABC%',如果是like '%aaa'就不可以
    6. 如果列名是索引,使用column is null会使用索引
  2. 存在索引但不会使用索引的典型场景
    1. 以%开头的like查询不能使用b树索引
    2. 数据类型出现隐式转换不能使用索引
    3. 复合索引,查询条件不符合最左列原则
    4. 用or分割的条件,如果前面的条件有索引,而后面的条件没有索引
  3. 查看索引使用的情况
代码语言:javascript
复制
show status like 'Handler_read%';

如果Handler_read_rnd_next的值比较高,说明索引不正确或者查询没有使用到索引

简单实用的优化方法

  1. 定期检查表和分析表 分析表语法:
代码语言:javascript
复制
analyze table 表名;

检查表语法:

代码语言:javascript
复制
check table 表名;
  1. 定期优化表
    • 对于字节大小不固定的字段,数据更新和删除会造成磁盘空间不释放,这时候就行优化表,可以整理磁盘碎片,提高性能 语法如下:
代码语言:javascript
复制
optimize table user(表名);

如果文章对你有帮助,请去我的博客留个言吧! 我的博客

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/04/04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 优化sql的一般步骤
  • 索引优化措施
  • 简单实用的优化方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档