MySQL数据库给表添加索引的实现

 更新时间:2023年08月18日 09:31:29   作者:何中应  
在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 表添加索引内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL InnoDB MRR优化指南

    MySQL InnoDB MRR优化指南

    这篇文章主要给大家介绍了关于MySQL InnoDB MRR优化的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • MySQL 虚拟列和虚拟索引的实现

    MySQL 虚拟列和虚拟索引的实现

    虚拟列是MySQL 5.7开始引入的新特性,本文主要介绍了MySQL 虚拟列和虚拟索引的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • mysql sharding(碎片)介绍

    mysql sharding(碎片)介绍

    这篇文章主要介绍了mysql sharding(碎片)介绍,本文讲解了Sharding的应用场景一般都哪些、Sharding与数据库分区(Partition)的区别等内容,需要的朋友可以参考下
    2015-03-03
  • Mac os 解决无法使用localhost连接mysql问题

    Mac os 解决无法使用localhost连接mysql问题

    今天在mac上搭建好了php的环境,把先前在window、linux下运行良好的程序放在mac上,居然出现访问不了数据库,数据库连接的host用的是localhost,可以确认数据库配置是正确的,下面特为大家分享下
    2014-05-05
  • MySQL函数CONCAT、CONCAT_WS、GROUP_CONCAT用法详解

    MySQL函数CONCAT、CONCAT_WS、GROUP_CONCAT用法详解

    这篇文章主要介绍了MySQL函数CONCAT、CONCAT_WS、GROUP_CONCAT用法详解,CONCAT 函数用于将两个字符串连接为一个字符串,本文通过实例代码详细讲解,需要的朋友可以参考下
    2023-02-02
  • MySQL连表更新实现高效数据同步的实战指南

    MySQL连表更新实现高效数据同步的实战指南

    在数据库开发中,连表更新(JOIN UPDATE)是一种常见且强大的操作,它允许我们基于关联表的数据来更新目标表,本文将深入探讨MySQL连表更新的语法、应用场景、性能优化及常见陷阱,帮助开发者掌握这一核心技能,需要的朋友可以参考下
    2026-02-02
  • mysql学习之引擎、Explain和权限的深入讲解

    mysql学习之引擎、Explain和权限的深入讲解

    这篇文章主要给大家介绍了关于mysql学习之引擎、Explain和权限的相关资料,文中通过示例代码将引擎、Explain和权限介绍的非常详细,对大家学习或者使用mysql具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • mysql5.x升级到mysql5.7后导入之前数据库date出错的快速解决方法

    mysql5.x升级到mysql5.7后导入之前数据库date出错的快速解决方法

    这篇文章主要介绍了mysql5.x升级到mysql5.7后导入之前数据库date出错的快速解决方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • MYSQL必知必会读书笔记第八章之使用通配符进行过滤

    MYSQL必知必会读书笔记第八章之使用通配符进行过滤

    这篇文章主要介绍了MYSQL必知必会读书笔记第八章之使用通配符进行过滤的相关资料,需要的朋友可以参考下
    2016-05-05
  • 阿里云Linux CentOS 7.2下自建MySQL的root密码忘记的解决方法

    阿里云Linux CentOS 7.2下自建MySQL的root密码忘记的解决方法

    这篇文章主要介绍了阿里云Linux CentOS 7.2下自建MySQL的root密码忘记的解决方法,需要的朋友可以参考下
    2017-07-07

最新评论