mysql联合索引的使用
这篇笔记主要记录联合索引的使用
设置了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联合索引的使用相关推荐
- mysql联合索引的数据结构
一.本文主要讲解的内容有: 联合索引在B+树上的存储结构 联合索引的查找方式 为什么会有最左前缀匹配原则 在分享这篇文章之前,我在网上查了关于MySQL联合索引在B+树上的存储结构这个问题,翻阅了很多 ...
- mysql 联合索引详解
mysql 联合索引详解 联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a,b,c). ...
- 找到符合条件的索引_高频面试题:MySQL联合索引的最左前缀匹配原则
前言 之前在网上看到过很多关于mysql联合索引最左前缀匹配的文章,自以为就了解了其原理,最近面试时和面试官交流,发现遗漏了些东西,这里自己整理一下这方面的内容. 最左前缀匹配原则 在mysql建立联 ...
- mysql联合索引测试
mysql联合索引和查询条件的匹配原则: 只有当联合索引的第一个字段在where条件中出现时,才会使用索引查询,不然就是全表扫描查询. 表的索引为: KEY `Index_query` (`trans ...
- mysql 联合索引 range_MySQL 联合索引使用情况
验证联合索引使用的情况 索引是一个排序的结构,用于快速检索和加速排序 MySQL表结构 index_test | CREATE TABLE `index_test` ( `c1` char(10) N ...
- SQL Server中的联合主键、聚集索引、非聚集索引、mysql 联合索引
我们都知道在一个表中当需要2列以上才能确定记录的唯一性的时候,就需要用到联合主键,当建立联合主键以后,在查询数据的时候性能就会有很大的提升,不过并不是对联合主键的任何列单独查询的时候性能都会提升,但我 ...
- MySQL联合索引以及索引顺序优化
MySQL联合索引以及索引顺序优化 1. 环境准备 2. 测试验证 1. 环境准备 -- 查看版本 ,5.7.19-17-log select VERSION();-- 创建表结构 CREATE TA ...
- 关于MySQL联合索引和优化军规
一.关于MySQL联合索引 总结记录一下关于在MySQL中使用联合索引的注意事项. 如:索引包含表中每一行的last_name.first_name和dob列,即key(last_name, firs ...
- MySQL联合索引原理解析
什么是MySQL联合索引 联合索引又叫复合索引,是MySQL的InnoDB引擎中的一个索引方式,如果一个系统频繁地使用相同的几个字段查询结果,就可以考虑建立这几个字段的联合索引来提高查询效率. 如何建 ...
- mysql联合索引怎么存储_联合索引在B+树上的存储结构及数据查找方式
能坚持别人不能坚持的,才能拥有别人未曾拥有的. 关注编程大道公众号,让我们一同坚持心中所想,一起成长!! 引言 上一篇文章<MySQL索引那些事>主要讲了MySQL索引的底层原理,且对比了 ...
最新文章
- 国产光刻机的现状究竟如何?
- 运维需要掌握的基础知识
- Nginx-03:Nginx安装、命令、配置文件
- 10个优秀的 Web UI库/框架 详细出处参考:http://www.jb51.net/web/22251.html
- 自己动手制作chm格式开源文档
- Boost:bimap双图的range范围的测试程序
- 华为鸿蒙不再孤,华为鸿蒙OS系统不再孤单!又一款国产系统启动内测:再掀国产替代化...
- 前端学习(1330):数据库相关概念
- Write a simple HTML Browser(hdu1088)
- SSE图像算法优化系列十八:三次卷积插值的进一步SSE优化。
- CentOS下安装Tomcat并配置JRE
- Node.js webpack vue组件
- R语言grid包just参数如何just图形位置
- 目录 1. Java中使用Ognl表达式引擎	1 1.1.1. 一、Ognl简介	1 1.1.2. 二、Ognl应用场景	1 1.2. 基本介绍 vs 模板语言	2 1.Java中使用Ognl表达
- 数值分析——三角分解法(LU分解法)C++
- oracle脚本怎么跑,命令行执行oracle的sql脚本逃跑吧少年秒开钥匙下载最
- SpringBoot后台java下载文件及注意的地方
- Windows中文键盘消失
- 【应用随机过程】07. 平稳过程
- emq查看状态“node emqx@127.0.0.1 not responding to pings”