这篇笔记主要记录联合索引的使用

设置了shopId、userId、relationId三个字段,作为联合索引,这三个字段,都是long类型的,也就是bigint
分别验证以下几个场景:
场景一:explain select * from testIndex where shopId = 1 and user_id = 1001 and relationId = 1;
场景二:explain select * from testIndex where shopId = 1 and user_id = 1001;
场景三:explain select * from testIndex where shopId = 1;
场景四:explain select * from testIndex where shopId = 1 and relationId = 1001;
场景五:explain select * from testIndex where shopId = 1 and user_id > 1;

索引信息:

场景一:

可以看到,在三个字段都使用的场景下,使用了索引,需要注意这里的key_len

场景二:

这里只有前两个字段参与了索引的查询,所以key_len是16

场景三:

这种情况下,毋庸置疑,只有第一个字段,使用了索引,所以key_len是8

场景四:

这种情况下,虽然也走了索引,但是实际上,只有第一个字段,参与了索引的查询,所以key_len是8

场景五:

在第二个字段是大于条件的时候,也走了索引,因为key_len是16

这里特意在网上查了下,联合索引,如果B字段使用的是大于,是否会使用索引的这个问题,大部分的说法是:如果是数字类型,会走索引,如果是普通的字符串类型(varchar),那mysql内部会判断,如果走索引查询效率并没有明显提升的时候,就不走索引了

mysql联合索引的使用相关推荐

  1. mysql联合索引的数据结构

    一.本文主要讲解的内容有: 联合索引在B+树上的存储结构 联合索引的查找方式 为什么会有最左前缀匹配原则 在分享这篇文章之前,我在网上查了关于MySQL联合索引在B+树上的存储结构这个问题,翻阅了很多 ...

  2. mysql 联合索引详解

    mysql 联合索引详解 联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a,b,c). ...

  3. 找到符合条件的索引_高频面试题:MySQL联合索引的最左前缀匹配原则

    前言 之前在网上看到过很多关于mysql联合索引最左前缀匹配的文章,自以为就了解了其原理,最近面试时和面试官交流,发现遗漏了些东西,这里自己整理一下这方面的内容. 最左前缀匹配原则 在mysql建立联 ...

  4. mysql联合索引测试

    mysql联合索引和查询条件的匹配原则: 只有当联合索引的第一个字段在where条件中出现时,才会使用索引查询,不然就是全表扫描查询. 表的索引为: KEY `Index_query` (`trans ...

  5. mysql 联合索引 range_MySQL 联合索引使用情况

    验证联合索引使用的情况 索引是一个排序的结构,用于快速检索和加速排序 MySQL表结构 index_test | CREATE TABLE `index_test` ( `c1` char(10) N ...

  6. SQL Server中的联合主键、聚集索引、非聚集索引、mysql 联合索引

    我们都知道在一个表中当需要2列以上才能确定记录的唯一性的时候,就需要用到联合主键,当建立联合主键以后,在查询数据的时候性能就会有很大的提升,不过并不是对联合主键的任何列单独查询的时候性能都会提升,但我 ...

  7. MySQL联合索引以及索引顺序优化

    MySQL联合索引以及索引顺序优化 1. 环境准备 2. 测试验证 1. 环境准备 -- 查看版本 ,5.7.19-17-log select VERSION();-- 创建表结构 CREATE TA ...

  8. 关于MySQL联合索引和优化军规

    一.关于MySQL联合索引 总结记录一下关于在MySQL中使用联合索引的注意事项. 如:索引包含表中每一行的last_name.first_name和dob列,即key(last_name, firs ...

  9. MySQL联合索引原理解析

    什么是MySQL联合索引 联合索引又叫复合索引,是MySQL的InnoDB引擎中的一个索引方式,如果一个系统频繁地使用相同的几个字段查询结果,就可以考虑建立这几个字段的联合索引来提高查询效率. 如何建 ...

  10. mysql联合索引怎么存储_联合索引在B+树上的存储结构及数据查找方式

    能坚持别人不能坚持的,才能拥有别人未曾拥有的. 关注编程大道公众号,让我们一同坚持心中所想,一起成长!! 引言 上一篇文章<MySQL索引那些事>主要讲了MySQL索引的底层原理,且对比了 ...

最新文章

  1. 国产光刻机的现状究竟如何?
  2. 运维需要掌握的基础知识
  3. Nginx-03:Nginx安装、命令、配置文件
  4. 10个优秀的 Web UI库/框架 详细出处参考:http://www.jb51.net/web/22251.html
  5. 自己动手制作chm格式开源文档
  6. Boost:bimap双图的range范围的测试程序
  7. 华为鸿蒙不再孤,华为鸿蒙OS系统不再孤单!又一款国产系统启动内测:再掀国产替代化...
  8. 前端学习(1330):数据库相关概念
  9. Write a simple HTML Browser(hdu1088)
  10. SSE图像算法优化系列十八:三次卷积插值的进一步SSE优化。
  11. CentOS下安装Tomcat并配置JRE
  12. Node.js webpack vue组件
  13. R语言grid包just参数如何just图形位置
  14. 目录 1. Java中使用Ognl表达式引擎 1 1.1.1. 一、Ognl简介 1 1.1.2. 二、Ognl应用场景 1 1.2. 基本介绍 vs 模板语言 2 1.Java中使用Ognl表达
  15. 数值分析——三角分解法(LU分解法)C++
  16. oracle脚本怎么跑,命令行执行oracle的sql脚本逃跑吧少年秒开钥匙下载最
  17. SpringBoot后台java下载文件及注意的地方
  18. Windows中文键盘消失
  19. 【应用随机过程】07. 平稳过程
  20. emq查看状态“node emqx@127.0.0.1 not responding to pings”

热门文章

  1. 【题解】P1396 营救-C++
  2. FTP部署看这一篇就够了——Linux版
  3. NS2:架构(节点、链路、代理、应用层)
  4. WSL配置中文输入法
  5. 最牛逼的 Java 日志框架,性能无敌,横扫所有对手
  6. unity保存游戏数据_在Unity中保存和加载玩家游戏数据
  7. 神卓ITG智能组网3389远程访问
  8. CSS不同背景显示不用颜色的文字
  9. android文件搜索器
  10. H5网页播放器EasyPlayer.js播放器界面的加载效果无法消失是什么原因?