• 十六、mysql 分区之 简单sql优化1


    1.使用 show session status like '%Com_%'; 可以查看当前连接的各个sql的执行频率
           show global status like '%Com_%'; 可以查看从上次mysql服务器启动到目前为止sql的执行频率
    
    2.explain select * from tmp;
        mysql> explain select * from zi_emp where tid = 1000G
        *************************** 1. row ***************************
                   id: 1
          select_type: SIMPLE
                table: zi_emp
                 type: ALL
        possible_keys: NULL
                  key: NULL
              key_len: NULL
                  ref: NULL
                 rows: 2
                Extra: Using where
        1 row in set (0.00 sec)
        
        PS::type类型中,ALL为效率最差,因为这样意味着进行全表扫描
            index类型为索引全扫描
            range为索引范围扫描
            ref为非唯一索引或唯一索引的前缀扫描
            eq_ref唯一索引扫描
            const/system 单表中只有一个匹配的行,比如用户表
            NULL  没有访问到表或索引 比如:select 1=1;
    
    3.哈哈,发现一个很好的东西
        explain extended select * from zi_emp; 查看执行sql语句前,mysql优化器做了点什么
        show warnings;
        mysql> show warningsG
        *************************** 1. row ***************************
          Level: Note
           Code: 1003
        Message: select `bin`.`zi_emp`.`tid` AS `tid`,`bin`.`zi_emp`.`tname` AS `tname` from `bin`.`zi_emp`
        1 row in set (0.00 sec)
        
        PS::没错,你看的就是一条完整的sql语句,也就是说这可能是msyql给定的最好的sql语句了,可以学习并复用
    
    4.explain partitions select * from zi_emp where xxxxx 可以查看当前记录的分区所在位置
  • 相关阅读:
    JSP中getParameter和getAttribute区别
    用jsp实现省市区三级联动下拉
    SQL
    Unity3d笔试题大全
    FPSCalc——简单FPS观测类
    GameObjectPool——Unity中的对象池
    MonoSingleton——Unity中的单例模式
    用非递归、不用栈的方法,实现原位(in-place)的快速排序
    一道有序洗牌的笔试题,阿里UC等都用过
    MFC中显示图像的放大、缩小、移动功能
  • 原文地址:https://www.cnblogs.com/shibazi/p/3836611.html
Copyright © 2020-2023  润新知