问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何判断mysql联合索引是否生效

发布网友 发布时间:2022-05-01 01:09

我来回答

2个回答

懂视网 时间:2022-05-02 18:58

首先这里建立一张数据表,并建立符合索引( index_A,index_B,index_C)

CREATE TABLE `test_index_sequence` ( 

`Id` int(11) NOT NULL AUTO_INCREMENT, 
`index_A` varchar(255) DEFAULT NULL, 
`index_B` varchar(255) DEFAULT NULL, 
`index_C` varchar(255) DEFAULT NULL, 
`field_D` varchar(255) DEFAULT NULL, 
PRIMARY KEY (`Id`), 
KEY `complex_index` (`index_A`,`index_B`,`index_C`) 
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; 

数据插入完成后,下面开始逐步验证索引的有效性。

1、单独使用字段index_A:

EXPLAIN 
SELECT * 
FROM test_index_sequence 
WHERE index_A=‘a‘ 

通过EXPLAIN分索引有效;

2、单独使用字段index_B:


EXPLAIN 
SELECT * 
FROM test_index_sequence 
WHERE index_B=‘b‘ 

通过索引失效;

3、单独使用字段index_C:


EXPLAIN 
SELECT * 
FROM 
test_index_sequence 
WHERE index_C=‘c‘ 

查看分析结果,索引失效;

4、联合使用字段index_A,index_B:EXPLAIN 
SELECT * 
FROM test_index_sequence 
WHERE index_A=‘a‘ AND index_B=‘b‘
查看分析结果,索引有效; 
5、联合使用字段index_A,index_C:EXPLAIN 
SELECT * 
FROM test_index_sequence 
WHERE index_A=‘a‘ AND index_C=‘c‘
查看分析结果,索引有效; 

6、联合使用字段index_B,index_C:


EXPLAIN 
SELECT * 
FROM test_index_sequence 
WHERE index_B=‘b‘ AND index_C=‘c‘

查看分析结果,索引失效;

7、联合使用字段index_A,index_B,index_C:


EXPLAIN 
SELECT * 
FROM test_index_sequence 
WHERE index_A=‘a‘ AND index_B=‘b‘ AND index_C=‘c‘ 

查看分析结果,索引有效;

综述:MySQL的复合索引遵循了最左前缀原则,当建立索引(index_A,index_B,index_C)时:

使用索引有效的字段为:‘index_A’,‘index_A,index_C’,‘index_A,index_B’,‘index_A,index_B,index_C’;

使用索引失效的字段为:‘index_B’,‘index_C’,‘index_C,index_B’;

MySQL之索引复合索引有效性

标签:14.3   test   3.3   and   14.   综述   2.3   index   ima   

热心网友 时间:2022-05-02 16:06

用explain,加在select前面,然后运行

查看key那列 有没有用到你那个索引

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
韩国EMS19.3公斤的箱子去中国要多少钱 俄罗斯快递查询 青春期孩子想买贵东西怎么办 发现青春期孩子买成人用品怎么办?? ...运送石油到中国上海湾,途中经过的海峡有( )A.白令海峡B.马六甲海峡C... 中俄货物运输企业 ...湾往我国运送石油的船只需要经过的海峡是: ( ) A.直布罗陀海峡 B... 童心唱响祖国完整版歌词【26句精选】 苹果有面容和没面容有什么区别 苹果无面容影响 酗酒会对人体哪个脏器影响最大? 饮酒对身体哪些器官造成危害? 酒中含有酒精,饮酒过多或经常饮酒,会造成酒精中毒,使身体受损,那么,饮酒对人体的哪些器官最为有害? 喝酒过多造成酒精中毒,哪个器官受伤害最大? 泉州有columbia(哥伦比亚)这牌子吗? 南通有 Columbia 卖么? 长期大量饮酒对人体的哪个脏器损害最严重? 饮酒不利于身体健康,饮酒都会伤害哪些器官? 徐州 有 Columbia 的专卖店么? 7. 什么是防火墙?简述防火墙的基本功能。 澳门有哥伦比亚的专卖店么?在什么地方? 谁知道北京卖Columbia,Northface等户外最便宜的实体店位置? 香港哪里有哥伦比亚的专卖店啊? columbia户外用品 专卖店 青岛有吗?在那里?怎么去? 深圳有columbia的专卖店吗? 口袋妖怪白金波克基古进化用的光之石在哪得啊? 口袋妖怪漆黑的魅影5.0暗之石和光之石是给哪些精灵用的 口袋妖怪xy中的大城市除了草石、水石和火石外,其他的雷石、太阳、月亮、光之石在哪里能买到 口袋怪兽红宝石386光之石在哪弄? 求助,XY里的光之石在哪里拿 喝酒后,人体的哪个器官受到的伤害最大? 过量饮酒对身体不好,饮酒最伤哪个器官? 请通俗的说明防火墙及其作用? 长期大量饮酒对身体哪些脏器有损害? 都知道喝酒对身体不好,那么喝酒最伤哪个器官? 什么是防火墙,有什么作用? MYSQL SELECT 字段使用函数 索引是否还有效? 哪一种线上比较容易签到 创建了MySQL全文索引之后,使用什么命令可以知道是否创建成功了_百度知 ... 酗酒最主要伤害人体的那个器官伤害? 长期大量饮酒对哪些器官伤害比较大? mysql 查看查询有没有用索引 酒喝多了,对人体的哪个器官有影响? mysql中and连接的两个条件若一个有索引一个没有,这索引生效吗 mysql 数值比较 索引是否有效 行车记录仪上的内存卡在手机上能看吗? 我的新浪微博之前是用手机号注册的后面我回来老家了买了一个新的手机号。然后微博还是那个旧的手机号登陆 谁有不用的新浪微博号?给我几个,邮箱,注意!只要旧的!不注册!! 微博买号怎么提取? 梦见前面邻居家拆房子邻居都去看房子倒下来压死了几个女人我幸运的逃出来