zoukankan      html  css  js  c++  java
  • mysql优化学习笔记

    优化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 表名;

        2.  定期优化表
            对于字节大小不固定的字段,数据更新和删除会造成磁盘空间不释放,这时候就行优化表,可以整理磁盘碎片,提高性能
            语法如下:optimize table user(表名);
  • 相关阅读:
    vue异步组件
    vue-awesome-swiper的使用
    自定义button组件时slot的使用
    axios拦截器的简单使用
    vue静态类名和动态类名绑定的几种方式
    快速知道所有元素的边框
    【转】CICD工具
    mocha学习(四)为项目开发一个BDD测试
    mocha学习(三)hook 机制 和 测试技巧
    mocha学习(二)mocha接口
  • 原文地址:https://www.cnblogs.com/HCT118/p/5647623.html
Copyright © 2011-2022 走看看