介绍
MySQL中有很多索引,常见的有主键索引,唯一索引,联合索引,下面我们来看看,如何判断SQL是否走了索引
参考文章:MySQL 索引
准备
新建一个SpringBoot项目,完成代码编写向MySQL数据库插入100万条数据,这里使用MyBatis框架,参考文章
查看数据库数据
索引
对id加主键索引
alter table user add primary key(id);
执行SQL
为了验证索引,我们找了这张表中间的一个记录的id
explain select * from user where id = '270493546413293570';
我们可以看到在使用索引的情况下,查询语句的确走了索引,只查询了一条记录,就找到了
但是要注意,如果我们的SQL如下,因为username没有索引
,所以会全表扫描
explain select * from user where username = '19ee606a1d';
非索引
去掉id的主键
alter table user drop primary key;
执行相同的SQL
explain select * from user where id = '270493546413293570';
注意到,如果去掉索引,SQL就不会走索引,而是进行全表扫描数据