Mysql SQL执行计划分析

本文详细介绍了MySQL SQL执行计划中的各项指标,包括id、select_type、table、type、possible_keys、key、key_len、ref、rows、filtered和Extra字段。通过示例解释了如何判断SQL是否使用了索引,以及各种Extra字段如Using index、Using filesort等的含义,帮助理解SQL执行效率和优化方法。
摘要由CSDN通过智能技术生成

前期准备

MySQL5.7
存储引擎InnoDB

建表语句

创建表t1表:

  1. PRIMARY KEY (id):定义id列为表的主键,这意味着每一行的id值必须是唯一的,且不可为NULL。
  2. KEY idx_abc1 (a,b,c):定义了一个名为idx_abc1的索引,这是一个复合索引,基于a, b, 和 c 列。这将提高对这些列进行组合查询时的性能。
  3. ENGINE=InnoDB:指定了存储引擎为InnoDB,这是MySQL的一种事务安全的存储引擎,支持行级锁定和外键约束。
  4. DEFAULT CHARSET=utf8:设置了表的默认字符集为UTF-8,用于编码表中的文本数据。
CREATE TABLE `t1` (
  `id` varchar(32) NOT NULL,
  `a` varchar(64) NOT NULL,
  `b` varchar(64) NOT NULL,
  `c` varchar(64) NOT NULL,
  `d` varchar(64) NOT NULL,
  `e` varchar(64) NOT NULL,
  `f` varchar(64) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_abc1` (`a`,`b`,`c`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

创建表t2表:

  1. UNIQUE KEY f (f):在表t2中,为列f定义了一个唯一索引UNIQUE KEY。这意味着列f中的每个值都必须是唯一的,不允许有重复的值,即使它允许为NULL(因为NULL值在唯一索引中被视为唯一的)。而在表t1中,列f没有这样的约束
CREATE TABLE `t2` (
  `id` varchar(32) NOT NULL,
  `a` varchar(64) NOT NULL,
  `b` varchar(64) NOT NULL,
  `c` varchar(64) NOT NULL,
  `d` varchar(64) NOT NULL,
  `e` varchar(64) NOT NULL
  • 34
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值