优化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. 查看索引使用的情况

show status like 'Handler_read%';

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

简单实用的优化方法

  1. 定期检查表和分析表
    分析表语法:

analyze table 表名;

检查表语法:

check table 表名;
  1. 定期优化表

    • 对于字节大小不固定的字段,数据更新和删除会造成磁盘空间不释放,这时候就行优化表,可以整理磁盘碎片,提高性能
      语法如下:

optimize table user(表名);

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

mysql优化学习笔记相关推荐

  1. Mysql 优化(学习笔记二十)

    https://blog.csdn.net/steven_liwen/article/details/53188411 运维角度mysql优化:https://www.cnblogs.com/shen ...

  2. 燕十八MySQL优化学习笔记

    观察 show status; 里面的这三个参数;Queries Threads_connected Threads_running 判断周期性变化 ------------------------- ...

  3. mysql性能优化-学习笔记

    mysql性能优化-学习笔记

  4. MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)...

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  5. MySQL 索引学习笔记

    MySQL 索引学习笔记 索引基本概念 索引优点 B-Tree 索引 基本原理 使用场景 使用限制 哈希索引 基本原理 使用限制 自适应哈希索引 处理哈希冲突 相关面试题 高性能索引策略 独立的列 前 ...

  6. 最新、最全、最详细的 MySQL 数据库学习笔记总结(2021最新版)

    数据库是什么 数据库管理系统,简称为DBMS(Database Management System),是用来存储数据的管理系统. DBMS 的重要性 无法多人共享数据 无法提供操作大量数据所需的格式 ...

  7. Mysql 高级学习笔记

    Mysql 高级学习笔记 文章目录 Mysql 高级学习笔记 一.Mysql 基础 1. 聚合函数 2. having 3. sql 的执行顺序 4. 约束 5. 试图 二.Mysql 高级 1. M ...

  8. MySQL高级学习笔记(四)

    文章目录 MySQL高级学习笔记(四) 1. MySql中常用工具 1.1 mysql 1.1.1 连接选项 1.1.2 执行选项 1.2 mysqladmin 1.3 mysqlbinlog 1.4 ...

  9. linux数据库创建score表,MySQL数据库学习笔记

    MySQL数据库学习笔记phpma (实验环境:Redhat9.0,MySQL3.23.54) 纲要: 一,连接MySQL phpma 二,MySQL管理与授权 三,数据库简单操作 四, 数据库备份 ...

最新文章

  1. java继承的知识点_Java知识点梳理——继承
  2. 请求一个action,将图片的二进制字节字符串在视图页面以图片形式输出
  3. 【MySQL】可重复读模式下 unique key失效案例
  4. python怎么写中文至excel_[ Python爬虫实战 ] python 操作excel以及解决中文报错 - pytorch中文网...
  5. php表格之间设置间隔,html表格如何设置间距
  6. 2019ICPC(南昌) - Hello 2019(动态规划+线段树维护矩阵)
  7. linux共享文件可读写,在Ubuntu中设置samba共享可读写文件夹
  8. JS日期比较大小 给定时间和持续时间计算最终时间
  9. Linux Ftrace介绍与原理
  10. python环境配置(一)——Linux下将python2.6升级到2.7 安装pip 以及升级中遇到问题的解决方法
  11. Excel下的数据挖掘:学生成绩统计分析实战之总体分析
  12. matlab求一个矩阵的逆矩阵的命令,如何用MATLAB求逆矩阵
  13. 企业微信授权登录实例代码(仅仅获取过程)
  14. mysql从创库到查询基本命令
  15. 写给女朋友的java_Java会说情话的女朋友
  16. 凑个热闹,分析下Padavan的代码,一
  17. c语言'\0','0',0 ,0之间的区别
  18. python用于cad_使用Python读取AutoCAD DXF文档
  19. vue3 滑动验证组件
  20. 未来10年云计算发展前景如何?云计算的优势在哪里?

热门文章

  1. 【玩转cocos2d-x之三十二】xml的解析
  2. TCP发送接口(如send(),write()等)的返回值与成功发送到接收端的数据量无直接关系
  3. 在C++中使用Protocol Buffers
  4. 第03讲. 原理探究,了解爬虫的基本原理
  5. Java8 日期/时间(Date Time)API指南
  6. Kafka分区分配策略(2)——RoundRobinAssignor和StickyAssignor
  7. 读取 classpath 资源
  8. LiveVideoStackCon 2022 上海站 专题抢先看(2)
  9. Google发布TCC 更好的理解视频中事件逻辑
  10. 剑指offer之46-50题解