>데이터 베이스 >MySQL 튜토리얼 >十六、mysql 分区之 简单sql优化1_MySQL

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-05-31 08:46:351006검색
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 = 1000/G    *************************** 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 warnings/G    *************************** 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 可以查看当前记录的分区所在位置

 

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.