MySQL数据库给表添加索引的实现
说明:当数据库中的记录数过多时,查询速度会显著变慢。此时可以给表创建索引,提高查询速度。
一、创建索引前
我现在有一张表,有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中,表的主键、唯一约束是自动生成的索引(其实也好理解,不建立索引,数据库怎么能在添加数据时,立刻检索到我们添加的数据是否唯一呢?);
到此这篇关于MySQL数据库给表添加索引的实现的文章就介绍到这了,更多相关MySQL 表添加索引内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
探讨:sql插入空,默认1900-01-01 00:00:00.000的解决方法详解
本篇文章是对sql插入空,默认1900-01-01 00:00:00.000的解决方法进行了详细的分析介绍,需要的朋友参考下2013-06-06
mysql初始化命令mysqld --initialize参数说明小结
本文主要介绍了mysql初始化命令mysqld --initialize参数说明小结,文中通过图表代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2024-08-08


最新评论