MySQL数据库给表添加索引

当数据库表中的记录数达到1000万时,未使用索引的查询耗时25秒。创建了username字段的索引后,查询时间降低至73毫秒,显示了索引在提高查询效率上的显著效果。然而,需要注意的是,索引虽能加速查询,但也会占用额外存储空间,并非所有字段都适合添加索引,通常选择查询频繁的字段。此外,主键和唯一约束在MySQL中会自动生成索引。
摘要由CSDN通过智能技术生成

说明:当数据库中的记录数过多时,查询速度会显著变慢。此时可以给表创建索引,提高查询速度。

一、创建索引前

我现在有一张表,有1000万条记录,根据username值,查询一条记录,测试下查询时间;

select id, username, password, sex, email from user where username='zhangsan5000025';

在这里插入图片描述

查询时间:25s 695ms

在这里插入图片描述

二、创建索引

(1)创建索引:给user表的username字段,添加索引,索引名为username_index,此过程会花费较长的时间(相较于查询);

create index username_index on user(username);

在这里插入图片描述

(2)查看索引:查看user表的索引;

show index from user;

在这里插入图片描述

(3)删除索引:删除user表的username_index索引;

drop index username_index on user;

三、创建索引后

创建索引后,再试下查询时间,可以看到查询速度有显著提升

select id, username, password, sex, email from user where username='zhangsan5000025';

查询时间:73ms
在这里插入图片描述

总结

需要知道以下这些:

(1)MySQL的索引,底层是用B+Tree实现的

(2)索引并不是加的越多越好,添加索引会增加数据所占的空间,所以通常给查询频繁的字段添加索引;

(未使用索引的数据大小)

在这里插入图片描述

(加索引后的数据大小)

在这里插入图片描述

(3)MySQL中,表的主键、唯一约束是自动生成的索引(其实也好理解,不建立索引,数据库怎么能在添加数据时,立刻检索到我们添加的数据是否唯一呢?);

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何中应

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值