热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

mysql创建索引c_mysql创建索引

MySQL当中有许多的数据结构,小编在前面的文章当中都有给大家介绍过。今天小编就给大家介绍一下MySQL当中的索引,索引指的就是一个高效组织的数据结构&

MySQL当中有许多的数据结构,小编在前面的文章当中都有给大家介绍过。今天小编就给大家介绍一下MySQL当中的索引,索引指的就是一个高效组织的数据结构,它能够有效的提高数据检索的速度。

(一)MySQL索引简介

索引的存放位置:对于Innodb储存引擎的表来说,索引会按照MySQL进行配置,然后集中存放在相同的文件中。然而,对于Myisam储存引擎的表来说,索引信息就会单独储存在表的.MYI文件当中。

2a318c94f580a64e1cafd6c62bf4d4d3.png

Index文件不只储存了需要查询的数据的索引值,索引值下面还有该索引对应数据的指针信息,指向数据库文件真实数据的位置。就是说索引就等于书本的目录章节以及对应页码,数据库能按照章节标题以及页码寻找对应的数据,就可以加快查询速度。

以为MySQL的常用索引:

(1)普通索引

(2)主键索引

(3)唯一索引

(4)全文索引

(5)多列索引

通常,把索引添加在查询频繁并且重复度低的列上面,主键索引还有唯一的索引就是"主键约束"还有"Unique约束",这两种为特殊索引。

(二)索引实例

(1)普通索引

普通索引的创建,如下:

19ac7e26fd93c050054c3c967e0fd92f.png

(2)主键索引

主键索引又称"主键约束",如下:

6fe9a6e0b9d0a804940ca09b640a04f1.png

(3)唯一索引

唯一索引又称为“Unique约束”",如下:

3de7fb82218175db16139ac9ce8e9505.png

(4)全文索引

全文索引只可以对空格分隔字符的语言环境有效,如英文是句子中每个单词中间都会有空格,但是中文字符间是没有空格的。然而,在MySQL5.6.4之前的版本中,只有Myisam引擎的表才支持全文索引。在MySQL5.6.10版本后,InnoDB也支持索引技术了,如下例:

b8d0eaaf89c61dcc79e68a35e09de307.png

(5)多列索引

有时,把数据分开储存就会便于管理,但有时又要把他们看成整体索引查询,这样就能用多列索引:

01beccd63339e7dd4963b58bac465f59.png

在查找过程中,不管列名称怎么前后排序,MySQL都可以正确的组合,还能用到正确的索引,首先多列索引中位于开头的那些数据要包含在里面。假设三段数据a,b,c都加入了多列索引keykeyName(a,b,c),只是bandc就不会主动使用多列索引。但是,只要包含a,后面不管是c还是b亦或是只有a,都可以主动用多列索引查询。

这就是数据库中"左前缀"的概念,要是数据‘ABCDEF’加入了索引,就查询前面ABC部分,数据库能够按照索引查找ABC开头的数据,而我们只知道DEF部分,数据库就不会主动的用索引查找,原因是索引中没有DEF开头的数据。

0d43c3d5ac7ab5645bfe11da2286fc91.png

(三)索引管理

(1)对表索引信息进行查看

29e9c337e9e36b10cc53b940c4bb2a45.png

(2)删除表索引信息

27810c9d37eed701f1621a922c46f694.png

(3)追加索引信息

a5298c88447efe927bd6bb24cc4e5c94.png

总结:要是Key是MUL,那么这一列的值可以重复,这一列是非唯一索引的前导列,即第一列或者是一个唯一性索引的组成部分但是可以含有空值NULL。

关于MySQL使用SQL语句为表中字段添加索引,本文就介绍这么多,希望对大家有所帮助,谢谢!



推荐阅读
  • 本文详细介绍如何在Spring Boot项目中集成和使用JPA,涵盖JPA的基本概念、Spring Data JPA的功能以及具体的操作步骤,帮助开发者快速掌握这一强大的持久化技术。 ... [详细]
  • MySQL磁盘空间满的解决方案及预防措施
    本文介绍了一个案例,其中MySQL服务器的磁盘使用率达到100%,仅剩余几十兆空间。通过一系列操作,包括备份数据库、删除实例、删除数据库表以及重启MySQL服务,但未能有效释放磁盘空间。文章进一步探讨了可能的原因和最终解决问题的方法。 ... [详细]
  • 使用EF Core在.Net Core控制台应用中操作SQLite数据库
    本文介绍如何利用Visual Studio 2019和Windows 10环境,通过Entity Framework Core(EF Core)实现对SQLite数据库的读写操作。项目源代码可从百度网盘下载。 ... [详细]
  • 本文探讨了SQLAlchemy ORM框架中如何利用外键和关系(relationship)来建立表间联系,简化复杂的查询操作。通过示例代码详细解释了relationship的定义、使用方法及其与外键的相互作用。 ... [详细]
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • SQLite是一种轻量级的关系型数据库管理系统,尽管体积小巧,却能支持高达2TB的数据库容量,每个数据库以单个文件形式存储。本文将详细介绍SQLite在Android开发中的应用,包括其数据存储机制、事务处理方式及数据类型的动态特性。 ... [详细]
  • 帝国cms各数据表有什么用
    CMS教程|帝国CMS帝国cmsCMS教程-帝国CMS精易编程助手源码,ubuntu桥接设置,500错误是tomcat吗,爬虫c原理,php会话包括什么,营销seo关键词优化一般多 ... [详细]
  • 利用Selenium框架解决SSO单点登录接口无法返回Token的问题
    针对接口自动化测试中遇到的SSO单点登录系统不支持通过API接口返回Token的问题,本文提供了一种解决方案,即通过UI自动化工具Selenium模拟用户登录过程,从浏览器的localStorage或sessionStorage中提取Token。 ... [详细]
  • 本文详细对比了MySQL中的InnoDB与MyISAM两种存储引擎,从性能、事务处理能力、锁机制等多个维度进行了深入探讨,旨在为数据库设计者提供选择依据。 ... [详细]
  • PHP网站部署指南:从零开始搭建PHP网站
    本文提供了详细的步骤指导,帮助开发者在不同环境下成功部署PHP网站,包括在IIS和Apache服务器上的具体操作。 ... [详细]
  • 本文旨在为初学者提供一个详细的指南,从零开始学习如何使用 ASP.NET MVC5 和 Entity Framework 6 (EF6) 搭建项目。通过逐步指导,帮助读者理解 MVC 架构的核心概念,并掌握基本的操作方法。 ... [详细]
  • 设计模式系列-原型模式
    一、上篇回顾上篇创建者模式中,我们主要讲述了创建者的几类实现方案,和创建者模式的应用的场景和特点,创建者模式适合创建复杂的对象,并且这些对象的每个组成部分的详细创建步骤可以是动态的变化的,但 ... [详细]
  • Navicat Premium中MySQL用户管理:创建新用户及高级设置
    本文作为Navicat Premium用户管理系列的第二部分,主要介绍如何创建新的MySQL用户,包括设置基本账户信息、密码策略、账户限制以及SSL配置等。 ... [详细]
  • 本文详细介绍了在Mac操作系统中使用Python连接MySQL数据库的方法,包括常见的错误处理及解决方案。 ... [详细]
  • 时序数据是指按时间顺序排列的数据集。通过时间轴上的数据点连接,可以构建多维度报表,揭示数据的趋势、规律及异常情况。 ... [详细]
author-avatar
man_2_瞳皆哥仔
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有