iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL数据库的常用索引
  • 878
分享到

MySQL数据库的常用索引

摘要

Mysql数据库的常用索引 本文关键字:数据库、MySQL、索引的作用、常用索引在使用数据库的过程中,经常会进行数据的查询。随着数据量的增大,查询的时间会变的原来越长,这就需要合理的建立索引来提高查询效率。 一、索引概述 1. 数据库检索


	MySQL数据库的常用索引
[数据库教程]

Mysql数据库的常用索引

本文关键字:数据库、MySQL、索引的作用、常用索引
在使用数据库的过程中,经常会进行数据的查询。随着数据量的增大,查询的时间会变的原来越长,这就需要合理的建立索引来提高查询效率。

一、索引概述

1. 数据库检索

在讲述索引之前我们要先来简单介绍一下数据库中是如何进行数据查询的,这更有助于我们理解索引。对于数据库来说,本质上是一个软件,或者可以称为一个系统,提供了对于数据管理的功能。存放在数据表中的数据其实同样是存储在磁盘上,对于不同的数据库,会以不同的数据格式文件存在。
在进行数据库检索时,尤其是条件查询,解析sql指令后,本质上是对数据存储文件的扫描。我们所使用的绝大部分关系型数据库的表结构采用的都是行式存储,也就是一条数据是一行,每一列的数据是在这一行中以某种分隔符来分隔。数据库在进行数据扫描时也是通过游标(cursor)以行为单位来进行操作,与之相对的就是列式存储(column table),比如HANA。
那么在进行条件查询时,会逐行进行扫描,通过移动游标指定到不同的行,然后再获取到对应的列的值,比对,确定结果,在数据量比较小的时候我们可以忽略时间问题,但当数据量很大时(千万级)问题就很明显了,查询速度很难接受,在使用索引前,数据查询的过程可以这样表示:
技术图片

2. 索引的作用

说到索引,大家一定都很熟悉目录,如果我们把数据表看成一本书的话,没有索引的数据表就好像一本没有目录的书,并且内容之间也没什么顺序可言,那我们除了一页一页去翻又有什么办法呢?
如果我们将一条数据比作一页,每列数据就相当于这一页的内容。这时我们使用索引就可以建立起某列数据与某一条数据的关系,也就是说给定一个查询条件和信息,我就能够定位到数据的所在位置。
那么索引的工作原理和目录很类似,一旦我们创建了索引,就相当于为整本书创建了一个动态的目录,为什么是动态?因为数据是会被修改的嘛。当建立索引的列的数据被修改时,索引中也要及时的更新,保证对应关系是正确的,建立所以后,数据的查询的过程可以这样表示:
技术图片
敲黑板:建立了索引后,当被声明了索引的列作为条件或排序的列使用时,速度就会明显提升。也就是说,索引建立以后是个被动技能,符合了使用规则就会自动触发。

3. mysql索引存储类型

在MySQL中,根据存储和映射方式的不同可将索引分为两种:

  • B-Tree:MySQL中使用最为频繁的索引类型,是以树形结构和节点的方式管理。
  • Hash:Hash索引主要用于等值过滤,在这一点上效率要高于B-Tree,但不支持范围查询。

二、MySQL常见索引

每一个索引都是建立在一个列上的,一个数据表中可以为多个列声明索引。在MySQL数据库中,常用的索引根据用途和作用效果可以被分为以下几类:

1. 普通索引

普通索引是MySQL中最基本索引类型,基本上对列的数据不会加任何的限制,可以允许空值和重复值,最主要的用途就是加快数据的访问速度。

2. 唯一索引

唯一索引指的是对数据添加了唯一性约束,这一列的数据当中不能够出现重复的值,但是可以有null值(至多有一个)。在创建唯一索引时会进行数据校验,如果此时已经有了重复数据,则索引创建失败。在建立唯一索引后,再向表中插入已有的重复数据时,也会被拒绝。

3. 主键索引

主键索引的特点是:非空、唯一。所以如果我们想找一列作为每条数据的唯一标识,就会将这一列声明为主键。由于主键的特点,经常会被作为其他表外键的参照列,也是在进行数据同步时的主要参照

4. 复合索引

同一索引类型作用在多个不同列上时,可以称之为组合索引,对于主键索引,有一个特别的称呼:复合主键。(注意:复合主键与联合主键不是同一个含义,联合主键指的是将多个主键的值联合在一起,常出现在多对多逻辑的中间表中,比如:将两个有关联的数据主键定义在中间表中,然后再为中间表设立一个主键来唯一标识每一条关联数据)

5. 全文索引

全文索引主要是作用在数据类型为CHAR、VARCHAR、TEXT的列上,用于长文本的字符串搜索加速。使用全文索引时,自然语言搜索的效率要大于LIKE关键字。

6. 空间索引

空间索引主要是针对空间数据类型的列建立的,如:GEOMETRY。如果在某一列上建立空间索引,则必须声明为:NOT NULL,只有MyISAM引擎的表支持空间索引。

MySQL数据库的常用索引

原文地址:https://blog.51cto.com/10984944/2514455

您可能感兴趣的文档:

--结束END--

本文标题: MySQL数据库的常用索引

本文链接: https://www.lsjlt.com/news/7599.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • sql怎么查看表的索引
    通过查询系统表,可以获取表的索引信息,包括索引名称、是否唯一、索引类型、索引列和行数。常用系统表有:mysql 的 information_schema.statistics、postg...
    99+
    2024-05-14
    mysql oracle
  • sql怎么查看索引
    您可以使用 sql 通过以下方法查看索引:show indexes 语句:显示表中定义的索引列表及其信息。explain 语句:显示查询计划,其中包含用于执行查询的索引。informat...
    99+
    2024-05-14
  • sql怎么查看存储过程
    如何查看 sql 存储过程的源代码:使用 show create procedure 语句直接获取创建脚本。查询 information_schema.routines 表的 routi...
    99+
    2024-05-14
  • sql怎么查看视图表
    要查看视图表,可以使用以下步骤:使用 select 语句获取视图中的数据。使用 desc 语句查看视图的架构。使用 explain 语句分析视图的执行计划。使用 dbms 提供...
    99+
    2024-05-14
    oracle python
  • sql怎么查看创建的视图
    可以通过sql查询查看已创建的视图,具体步骤包括:连接到数据库并执行查询select * from information_schema.views;查询结果将显示视图的名称、...
    99+
    2024-05-14
    mysql
  • sql怎么用循环语句实现查询
    可以通过 do 和 while 语句创建循环,并在循环内执行查询,详细步骤包括:定义循环变量设置循环初始值循环执行查询更新循环变量执行查询循环退出条件 SQL 中使用循环语句实现查询 ...
    99+
    2024-05-14
  • sql怎么用代码修改表中数据
    通过 sql 代码修改表中数据的方法包括:修改单个记录:使用 update 语句设置列值并指定条件。修改多条记录:在 update 语句中指定多个条件来修改满足条件的所有记录。增加新列:...
    99+
    2024-05-14
  • sql怎么用命令创建数据库
    在 sql 中使用 create database 命令创建新数据库,其语法包含以下步骤:指定数据库名称。指定数据库文件和日志文件的位置(可选)。指定数据库大小、最大大小和文件增长(可选...
    99+
    2024-05-14
  • sql怎么用身份证提取年龄
    sql 中提取身份证号码中的年龄的方法:提取出生日期部分(身份证号码中第 7-14 位);使用 to_date 函数转换为日期格式;使用 extract 函数计算与当前日期之间的年差。 ...
    99+
    2024-05-14
  • sql怎么看字段长度
    有两种方法可查看 sql 中的字段长度:使用 information_schema 架构,其中包含元数据信息,可用于查询字段长度。使用内建函数,如 length(),其适用于字符串数据类...
    99+
    2024-05-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作