mysql 优化索引 过程 explain profiling optimizer_trace(三)

一、 explain
  1. 首先拿到执行的sql语句,使用 mysql 自带的explain命令,使用explain 查看执行计划,
explain  select * from cc_ci where id = '200000000140094'  
或 以json格式显示
explain format=json select * from cc_ci where id = '200000000140094'   
 

在这里插入图片描述

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "1.00"
    } /* cost_info */,
    "table": {
      "table_name": "cc_ci",
      "access_type": "const",
      "possible_keys": [
        "PRIMARY"
      ] /* possible_keys */,
      "key": "PRIMARY",
      "used_key_parts": [
        "ID"
      ] /* used_key_parts */,
      "key_length": "8",
      "ref": [
        "const"
      ] /* ref */,
      "rows_examined_per_scan": 1,
      "rows_produced_per_join": 1,
      "filtered": "100.00",
      "cost_info": {
        "read_cost": "0.00",
        "eval_cost": "0.20",
        "prefix_cost": "0.00",
        "data_read_per_join": "5K"
      } /* cost_info */,
      "used_columns": [
        "ID",
        "CI_CODE",
        "CI_DESC",
        "CLASS_ID",
        "SOURCE_ID",
        "OWNER_ID",
        "ORG_ID",
        "SUB_CLASS",
        "CI_VERSION",
        "HASH_CODE",
        "CI_PRIMARY_KEY",
        "CUSTOM_1",
        "CUSTOM_2",
        "CUSTOM_3",
        "CUSTOM_4",
        "CUSTOM_5",
        "CUSTOM_6",
        "ATTRS_STR",
        "DOMAIN_ID",
        "DATA_STATUS",
        "CREATOR",
        "MODIFIER",
        "CREATE_TIME",
        "MODIFY_TIME"
      ] /* used_columns */
    } /* table */
  } /* query_block */
}
二、profiling
  1. 使用profiling详细的列出在每一个步骤消耗的时间,前提是先执行一遍语句。
#打开profiling 的设置
SET profiling = 1;
SHOW VARIABLES LIKE '%profiling%';

#查看队列的内容
show profiles;  
#来查看统计信息
show profile block io,cpu for query 3;
三、Optimizer trace
  1. Optimizer trace 是MySQL5.6添加的新功能,可以看到大量的内部查询计划产生的信息, 先打开设置,然后执行一次sql,最后查看information_schema.OPTIMIZER_TRACE的内容
#打开设置
SET optimizer_trace='enabled=on';  

#最大内存根据实际情况而定, 可以不设置
SET OPTIMIZER_TRACE_MAX_MEM_SIZE=1000000;
SET END_MARKERS_IN_JSON=ON;
SET optimizer_trace_limit = 1;
SHOW VARIABLES LIKE '%optimizer_trace%';

#执行sql
select * from cc_ci where id = '200000000140094' 

#执行所需sql后,查看该表信息即可看到详细的执行过程
SELECT * FROM `information_schema`.`OPTIMIZER_TRACE`;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值