写点什么

MYSQL 索引篇(上)

用户头像
new life
关注
发布于: 2021 年 02 月 23 日
MYSQL 索引篇(上)

1.索引比较

mysql 数据库是关系型数据库中的杰出代表,在选择关系型数据库的时候,mysql 都会作为优先选择,一方面由于开源的特点,还有 mysql 自身一些好的设计,优异的性能,备受开发者青睐;而索引作为数据库加速查询的通用手段,mysql 自然也有自己一套索引设计机制,现在就让我们从最简单的索引分类开始分享吧。

1.1 建表语句


CREATE TABLE `t_common_index` (  `id` int NOT NULL,  `a` int DEFAULT NULL,  `b` int DEFAULT NULL,  `c` int DEFAULT '0',  PRIMARY KEY (`id`),  UNIQUE KEY `c_index` (`c`),  KEY `a_index` (`a`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
复制代码

1.2 数据准备


drop procedure idata;delimiter ;
delimiter ;create procedure idata()begin declare i int; set i=1; while(i<=100000)do insert into t_common_index values(i, i, i,i); set i=i+1; end while;end;;delimiter ;call idata();
复制代码


1.3 索引验证

1.3.1 无索引查询

select * from t_common_index where b between 10000 and 12000;
复制代码

执行耗时:

执行计划:


1.3.2 普通索引验证

select * from t_common_index where a between 10000 and 12000;
复制代码

执行耗时:

执行计划:


1.3.3 主键索引验证

select * from t_common_index where id between 10000 and 12000;
复制代码

执行耗时:

执行计划:


1.3.4 唯一索引验证

select * from t_common_index where c between 10000 and 12000;
复制代码

执行耗时:

执行计划:


1.3.5 覆盖索引验证

select a, id from t_common_index where a between 10000 and 12000
复制代码

执行耗时:

执行计划:


发布于: 2021 年 02 月 23 日阅读数: 33
用户头像

new life

关注

还未添加个人签名 2019.03.04 加入

还未添加个人简介

评论

发布
暂无评论
MYSQL 索引篇(上)