explain查看索引使用

2023-11-10

CREATE TABLE `test` (
  `id` int(11) NOT NULL,
  `name` varchar(20) DEFAULT NULL,
  `dep_id` int(11) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `tt` char(20) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `ix` (`name`,`dep_id`,`age`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

创建了联合索引:KEY ix (name,dep_id,age)

在这里插入图片描述

explain select * from test where name = ‘qwe’ and dep_id = 1 and age = 9\G;
使用了全部

mysql> explain select * from test where name = 'qwe' and dep_id = 1 and  age = 9\G;
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: test
   partitions: NULL
         type: ref
possible_keys: ix
          key: ix
      key_len: 73
          ref: const,const,const
         rows: 1
     filtered: 100.00
        Extra: NULL
1 row in set, 1 warning (0.00 sec)

使用了2个
explain select * from test where name = ‘qwe’ and dep_id = 1\G;

mysql> explain select * from test where name = 'qwe' and dep_id = 1\G; 
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: test
   partitions: NULL
         type: ref
possible_keys: ix
          key: ix
      key_len: 68
          ref: const,const
         rows: 1
     filtered: 100.00
        Extra: NULL
1 row in set, 1 warning (0.00 sec)

使用了1个
explain select * from test where name = ‘qwe’ and age = 9\G;

mysql> explain select * from test where name = 'qwe'  and age = 9\G; 
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: test
   partitions: NULL
         type: ref
possible_keys: ix
          key: ix
      key_len: 63
          ref: const
         rows: 1
     filtered: 33.33
        Extra: Using index condition
1 row in set, 1 warning (0.00 sec)

没有使用
explain select * from test where dep_id = 1 and age = 9\G;

mysql> explain select * from test where dep_id = 1 and age = 9\G; 
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: test
   partitions: NULL
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 3
     filtered: 33.33
        Extra: Using where
1 row in set, 1 warning (0.00 sec)

explain select * from test where name = ‘qwe’\G; 使用了1个

mysql> explain select * from test where name = 'qwe'\G;
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: test
   partitions: NULL
         type: ref
possible_keys: ix
          key: ix
      key_len: 63
          ref: const
         rows: 1
     filtered: 100.00
        Extra: NULL
1 row in set, 1 warning (0.00 sec)

explain select * from test where dep_id = 1 and name = ‘qqw’\G; 优化器会调整顺序,使用了2个

mysql> explain select * from test where dep_id = 1 and name = 'qqw'\G; 
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: test
   partitions: NULL
         type: ref
possible_keys: ix
          key: ix
      key_len: 68
          ref: const,const
         rows: 1
     filtered: 100.00
        Extra: NULL
1 row in set, 1 warning (0.01 sec)

**explain select * from test where dep_id = 1\G;**没有使用

mysql> explain select * from test where dep_id = 1\G;
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: test
   partitions: NULL
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 3
     filtered: 33.33
        Extra: Using where
1 row in set, 1 warning (0.00 sec)

explain select * from test where age = 1 and name = ‘qqw’\G;调整顺序,使用了1个

mysql> explain select * from test where age = 1 and name = 'qqw'\G;
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: test
   partitions: NULL
         type: ref
possible_keys: ix
          key: ix
      key_len: 63
          ref: const
         rows: 1
     filtered: 33.33
        Extra: Using index condition
1 row in set, 1 warning (0.00 sec)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

explain查看索引使用 的相关文章

  • MySQL 字符串中的第二个(或第三个)索引

    查找字符串中第三个空格的索引的最简单方法是什么 我的目标是得到CCC在此空格分隔的列表之外 AAAA BBBB CCCC DDDD EEE 其中A B和D是固定长度 C是可变长度 E F G是可选的 在Java中 我会使用indexof 起
  • SQL UPDATE 语句根据另一个现有行更新列

    基本上我有一个与下表具有相似格式的表格 我想做的是根据这个逻辑更新 Col4 如果 Col2 为空 则用 Col3 更新 Col4 如果 Col2 不为 null 则在 Col1 中查找与 Col2 中的值匹配的值 使用 col3 中的相应
  • 当与“<”或“>”运算符一起使用时,MySQL 不使用 DATE 上的索引吗?

    我正在使用解释来测试这些查询 col 类型是 DATE 这使用索引 explain SELECT events FROM events WHERE events date 2010 06 11 这不 explain SELECT event
  • 如何在 HTML / Javascript 页面中插入 PHP 下拉列表

    好吧 这是我的第二篇文章 请接受我是一个完全的新手 愿意学习 花了很多时间在各个网站上寻找答案 而且我几乎已经到达了我需要到达的地方 至少在这一点上 我有一个网页 其中有许多 javascript 函数 这些函数一起使用 google 地图
  • 当复选框条件更改时,如何使用ajax更新mysql数据库?

    我有一个在客户端按行显示的文章表 每篇文章都有一个唯一的 ID 并包含一个复选框以指示该文章是否被选中为收藏夹 如果它是最喜欢的 则该复选框已被选中 如果没有 则未选中 现在 如果特定于每一行的复选框条件发生变化 我需要 js 或 jque
  • MySQL - 选择一行 - 然后相对于所选行的下一个和上一个

    我会尽力澄清这一点 我需要在不使用 id 的情况下选择特定行和该选定行的前一个相对行以及该选定行的下一个相对行 这可能吗 简而言之 上一篇和下一篇 我不能 也许我只是不知道如何 使用 id 的原因是因为它们不是按顺序排列的 正如您从这个相当
  • 一个表可以有多个主键吗?

    我现在很困惑 也许你可以帮助我更好地理解这个问题 即一个表可以有两个主键 如果是 那么如何 如果没有 那为什么 您询问是否可以有多个主键field你当然可以 您只能有一个主键 但它可以包含唯一标识行所需的任意数量的列 创建表时使用类似这样的
  • Laravel 5.4 升级 - 违反完整性约束 - 列不能为空

    奇怪的是 所有这些都在 5 2 中工作 但我不知道可以改变什么来实现这一点 下面是错误和正在插入的数组 SQLSTATE 23000 Integrity constraint violation 1048 Column gender can
  • MySQL 数据库无法在 XAMPP for Mac 上启动

    突然我在 mac 上遇到了这个问题 我无法启动我的 MySQL 数据库 我只能启动 ProFTPD 和 Apache Web Server 这是应用程序日志 Starting all servers Starting MySQL Datab
  • 加载数据infile,Windows和Linux的区别

    我有一个需要导入到 MySQL 表的文件 这是我的命令 LOAD DATA LOCAL INFILE C test csv INTO TABLE logs fields terminated by LINES terminated BY n
  • 日期时间与时间戳字段

    我是 MySQL 数据库的新手 您是否建议在表创建中使用日期时间或时间戳字段以及原因 我正在使用 MySQL 5 7 和 innodb 引擎 Thanks 我会用TIMESTAMP对于任何需要自动管理的事情 因为它支持诸如ON UPDATE
  • 如何为我的整个 Node.js 应用程序使用相同的 MySQL 连接?

    我有一个app js 我从那里运行我的整个应用程序 在 app js 内部 我require许多文件中都有代码 对于每个文件 我都这样做 var mysql require mysql var mclient mysql createCon
  • WHERE NOT EXIST 附近的语法错误

    我在堆栈中搜索 但没有一个达到最终答案 我的查询是这样的 INSERT INTO user username frequence autoSend VALUES feri2 3 1 WHERE NOT EXISTS SELECT FROM
  • 获取mysql中逗号分隔行中不同值的计数

    一个表 Jobs 有 2 列 JobId 城市 当我们保存工作时 工作位置可能是多个城市 如下所示 JobId City 1 New York 2 New York Ohio Virginia 3 New York Virginia 我如何
  • MySQL 和 PHP 参数 1 作为资源

    好吧 当我运行下面提到的代码时 PHP 向我抛出此错误 在日志中 Error mysql num rows 期望参数 1 为资源 第 10 行 place 中给出的字符串 9 11号线 queryFP SELECT FROM db coun
  • 显示和随机化 php 数组

    我有一个显示结果的数组 如下所示 Array 0 gt 71 1 gt 56 2 gt 64 3 gt 82 4 gt 90 5 gt 80 6 gt 65 7 gt 62 8 gt 14 9 gt 3 我的代码是 while row my
  • 将IP保存到数据库中

    当用户登录时 我想将他们的 IP 保存在数据库中 我该怎么做呢 MySQL 字段最适合使用哪种类型 获取IP的PHP代码是什么样的 我正在考虑将其用作登录 会话内容的额外安全功能 我正在考虑使用用户现在拥有的 IP 检查用户从数据库登录的
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • 使用用户定义函数 MySql 时出错

    您好 请帮我解决这个问题 提前致谢 我在数据库中定义了这些函数 CREATE FUNCTION levenshtein s1 VARCHAR 255 s2 VARCHAR 255 RETURNS INT DETERMINISTIC BEGI

随机推荐

  • 软考中级软件设计师 2009-2022年真题

    整理了2009年到2022年 软考中级软件设计师的题目与参考答案 百度网盘分享 链接 https pan baidu com s 1f4Hfuw7lzgM4IZa g1Wepg pwd 50c1 提取码 50c1 成绩出来啦 大家加油吼
  • 安装webpack及使用less-loader出现的错误

    webpack安装 使用less loader报错 Module build failed TypeError loaderContext getResolve is not a function webpack是一个前端模块打包工具 与g
  • Ceph集群中指定OSD 创建 pool

    导读 如何利用crush来对不同数据指定不同设备的osd存储 这边我是用虚拟机演示 所以都是hdd 这边假设osd0 2 4为ssd设备 osd 1 3 5为sata设备 背景 在我们的ceph集群中 可能不只有sata盘或者ssd盘 有些
  • 7、Shiro+SpringMVC+oracle+maven整合

    本章节主要介绍Shiro SpringMVC oracle maven整合 并实现shiro的身份验证和授权 建表并插入数据 1 用户表 CREATETABLEusers Table user id number 10 primarykey
  • leetcode-找出数组中的重复数字

    我们让最终的nums序列其索引号与数值相等 即0号索引位置上的数值是0 1号索引位置上的数值是1 当前nums i 没有放到正确的坑上 并且那个正确的坑上的数与那个坑是不匹配的 那么就要不停地交换 交换到不能交换的时候 就要判断一下 是不是
  • springboot毕设项目《C语言程序设计》题库管理系统39b5j(java+VUE+Mybatis+Maven+Mysql)

    springboot毕设项目 C语言程序设计 题库管理系统39b5j java VUE Mybatis Maven Mysql 项目运行 环境配置 Jdk1 8 Tomcat8 5 Mysql HBuilderX Webstorm也行 Ec
  • C# 获取任务栏托盘通知区域中某个程序小图标位置

    一个小项目中需要用刀点击任务栏右下角通知区域的小图标 从而触发事件 其中比较容易出问题的地方是 public bool FindNotifyIcon IntPtr hTrayWnd ref Rect rectNotify UInt32 tr
  • 二、Qt定时器与文本编辑器制作《QT 入门到实战》

    学习目标 了解 qt 的 pixmap 了解 qt 的 label 如何显示图片 了解定时器的开启 了解定时器的关闭 了解文件如何进行读取 了解 QFileDialog 的使用 了解了一个文本编辑器的基本编写 巩固了 connect 的使用
  • 安装liunx双系统总结

    安装liunx双系统总结 参考文章 安装liunx详尽文章 https www cnblogs com masbay p 10844857 html 首先将硬盘分好区 我是双硬盘 在win10安装的硬盘内 C盘里压缩出200MB的空间 另一
  • 真机安装Linux Centos7

    准备工具 8G左右U盘 最新版UltraISO CentOS7光盘镜像 操作步骤 下载镜像 地址 http isoredirect centos org centos 7 isos x86 64 安装刻录工具UltraISO 刻录镜像到U盘
  • (React入门)组件通信

    1 父组件向子组件通信 props 父组件直接通过props向子组件传递需要的信息 import React Component from react 子组件 class Child extends Component render con
  • 怎么搭建微服务架构?

    我要何时使用微服务架构 又如何将应用程序分解为微服务 分解后 要如何去搭建微服务架构 同时 在微服务架构中 因为会涉及到多个组件 那么这些组件又可以使用什么技术来实现呢 接下来的几个小节中 我们将对这些问题进行详细的讲解 微服务的拆分 对于
  • Jenkins

    Jenkins jenkins定义 jenkins功能 tomcat项目部署 jenkins安装 安装后的jenkins的配置 Jenkins jenkins定义 jenkins tomcat 部署 安装 jenkins 是一个开源软件项目
  • 栈的概念和基本使用

    栈 Stack 是一种线性序列结构 其操作仅限于逻辑上特定的一端 即新元素只能从栈的一端插入 也只能从栈的一端弹出 允许操作的一端叫做栈顶 禁止操作的一端叫做栈底 插入元素称为入栈 弹出元素称为出栈 栈中各个元素的操作次序遵循所谓的后进先出
  • 涅普2021训练营-MIsc(部分)

    bin txt 打开附件发现是一大串的二进制字符串 使用python直接转换成16进制 最好别用网页转换 字符串太长了 也不需要创建什么函数 直接进制转换 参考格式 hex int 字符串 2 将得到的16进制吗复制到文本 将0x删除后复制
  • git 服务端钩子做代码检查

    需求分析 在代码修改后可以对代码进行检查 比如代码规范检查 代码构建 单元测试等 我们需要禁止成员推送不符合规范的代码到服务端 Git 钩子能在特定的重要动作发生时触发自定义脚本 钩子分为客户端和服务器端两类 使用客服端钩子可以在commi
  • 字符游戏-智能蛇

    字符游戏 智能蛇 一 VT 100 终端标准 这里按照老师的课件要求 体验一下VT 100 输入输出功能以及清屏操作 代码直接复制课件中代码 这里就不再放一次了 直接给出运行效果 gcc sin demo c osin out lm sin
  • OpenAI开发系列(一):一文搞懂大模型、GPT、ChatGPT等AI概念

    全文共5000余字 预计阅读时间约10 20分钟 满满干货 建议收藏 本文目标 详细解释大型语言模型 LLM 和OpenAI的GPT系列的基本概念 一 什么是大模型 大型语言模型 也称大语言模型 大模型 Large Language Mod
  • 解决Centos7没有ens33

    进入centos7操作 ifconfig ens33 up systemctl stop NetworkManager systemctl disable NetworkManager ifup ens33 systemctl restar
  • explain查看索引使用

    CREATE TABLE test id int 11 NOT NULL name varchar 20 DEFAULT NULL dep id int 11 DEFAULT NULL age int 11 DEFAULT NULL tt