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

mysql分组 数据量大 如何添加索引

发布网友 发布时间:2022-04-08 09:21

我来回答

2个回答

懂视网 时间:2022-04-08 13:42

mysql的多列索引是经常会遇到的问题,怎样才能有效命中索引,是本文要探讨的重点。

 

多列索引使用的Btree,也就是平衡二叉树。简单来说就是排好序的快速索引方式。它的原则就是要遵循左前缀索引。

多个索引从左边往右都使用上,才能使用到整个多列索引。

 

下面我先建立一个简单的表做实验:

create table t6 (

c1 char(1) not null default ‘‘,

c2 char(1) not null default ‘‘,

c3 char(1) not null default ‘‘,

c4 char(1) not null default ‘‘,

c5 char(1) not null default ‘‘,

key(c1,c2,c3,c4,c5)

) engine myisam charset utf8;

再分别insert into一些数据。

 

分别做以下一些查询:

1.

explain select * from t6 where c1=‘a‘ and c2=‘b‘ and c4>‘a‘ and c3="c" G;
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: t6
type: range
possible_keys: c1
key: c1
key_len: 12
ref: NULL
rows: 2
Extra: Using where
1 row in set (0.00 sec)

这里使用到了c1,c2,c3,c4索引,特别c4是一个范围查询,所以type为range,依次c1,c2,c3被命中索引。

2.

explain select * from t6 where c1=‘a‘ and c4=‘a‘ order by c3,c2 G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: t6
type: ref
possible_keys: c1
key: c1
key_len: 3
ref: const
rows: 2
Extra: Using where; Using filesort
1 row in set (0.00 sec)

过程中先命中了c1,然后在order by c3,c2的时候由于先去use c3做排序,从而联合索引断了。using filesort表明没有使用到多列合索引,而是做了文件内排序。

 

3.

explain select * from t6 where c1=‘a‘ and c4=‘a‘ order by c2,c3 G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: t6
type: ref
possible_keys: c1
key: c1
key_len: 3
ref: const
rows: 2
Extra: Using where
1 row in set (0.00 sec)

 

反之命中c1索引后,先用c2排序,再是c3来排序,分别命中,最后是c4=‘a‘做where查询,使用到了多列索引。

mysql之多列索引

标签:

热心网友 时间:2022-04-08 10:50

1.添加PRIMARY KEY(主键索引)
mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
2.添加UNIQUE(唯一索引)
mysql>ALTER TABLE `table_name` ADD UNIQUE (
`column`
)
3.添加INDEX(普通索引)
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
4.添加FULLTEXT(全文索引)
mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`)
5.添加多列索引
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
夫妻养狗狗把谁当主人 两人同养狗认谁当主人 什么蔬菜和水果可以美容祛斑呢? vivox60怎么查看参数配置详情 怎样查看vivo手机的屏幕参数? vivo手机怎么看手机参数 vi##手机怎么看配置? 义乌到湖州没有直达快客???必须到南浔?? 湖州到绍兴的汽车有几班? 注销驾考需要本人吗 缺考说明怎么写 因单位有事不能去考试的证明怎么写? 学生不能参加期末考试教师情况说明怎么写 天蝎座和什么星座比较配~? 未加入考核情况说明 天蝎座和哪个星座配? 自考本科考试未参加说明 与天蝎座最般配的星座是什么? 天蝎座和什么星座最般配? 天蓝蓝,山慢慢,你是我最动人的情歌 是那首歌的歌词 天蝎座和哪个星座比较配? 如何把一张黑白图片反色?就是黑变白白变黑,具体点 山清清呀路漫漫呀是什么歌 天蝎座最配的星座是什么星座? 天蝎座配什么星座最合适? 白发用什么产品能转黑? 山高漫漫山山出山歌,对联下句 天蝎座最配什么星座? 2020考研结果一般什么时候公布 忆秦娥 娄山关 不参加中考的情况说明怎么写 高一学生因病不能参加期末分班考试的情况说明? 我期末考试没去,,,悲催了,老师叫我写检讨书,和情况说明书两份 学生生病办缓考证的情况说明怎么写 山西省2016年特岗位教师招聘考试考生不参加笔试情况说明表交到哪儿 有一颗试没有考,老师叫写情况说明给他,这个要怎么写? 请简述一种下载文件的方式,简要说明个个步骤? 不能正常考试的情况说明怎么写 从网上下载文件有哪几种方式? 添加下载文件的方法 如何更改下载文件的打开方式,, 从网上下载文件有什么方法? 目前从lnternet上下载文件的方法主要有3种,下列哪项不是A.通过浏览器下载B.通过ftp 跪求臣服123,墨青城的!! 臣服123有吗?可以分享一下吗? 求臣服123部+番外by莫奈何,ballball您了 墨青城和墨奈何是同一个人吗 为什么臣服123里作者有两个?他们是同一个人吗? 求《臣服3》全文txt 能分享一下臣服123吗? 臣服(作者:糖醋奶茶)_by糖醋奶茶_txt全文阅读,百度网盘免费下载