首页 > 代码库 > 十六、mysql 分区之 简单sql优化1
十六、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 = 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 可以查看当前记录的分区所在位置
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。