MySQL——索引(概述和结构介绍)

一、索引概述

1、索引(index)是帮助 MySQL 高效获取数据的数据结构(是一种有序的数据结构)。

2、在数据之外,数据库系统还维护着满足特定查找算法的数据结构。这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,快速定义到原始数据。这种数据结构就是索引。

二、有无"索引"时的案例情况比较

(1)无索引情况
(2)有索引情况(只是举个例子,以实际的索引数据结构为准)

备注:下面的二叉树索引结构的只是一个示意图,并不是真实的索引结构。

三、索引的优缺点

(1)优点

简而言之

  • 提高查询效率
  • 提高排序效率
(2)缺点

1、索引是一种数据结构,要维护和使用这种数据结构需要存储在磁盘文件当中。

(不过磁盘相对来说比较便宜...)

2、查询效率虽然高,但是会降低更新表的速度。

因为当我们进行 "INSERT"、"UPDATE"、"DELETE" 操作时,因为要去维护索引的结构。比如插入数据要往其中增加节点,删除时要删去节点。所以会影响增、删、改的效率。

(不过这个也不要担心,因为正常的大部分业务对增、删、改的操作很少,更多的"查询")

四、索引的结构的介绍

在 MySQL 中索引是在第三层存储引擎中实现的。所以对于索引的结构,根据存储引擎的不同,索引的结构也会有所不同。以下4种是主要的索引结构:

(1)B+Tree 索引

大部分引擎都支持。

(2)Hash 索引

弊端:不支持范围查询,只能进行精确匹配。(性能很高)

(3)R-tree 索引(空间索引)

在进行存储地理位置的相关数据时,会用到空间索引。一般用的比较少。

(4)Full-text (全文索引)

也用的比较少,理解和了解一下就行。


后面我们重点学学习 B+Tree。

(5)介绍这几种索引结构在不同的索引引擎的支持情况

(在后面的学习中,没有指定哪种存储引擎或者哪种索引结构,则默认就是"B+Tree" 索引)

相关推荐
_dindong5 分钟前
牛客101:二叉树
数据结构·c++·笔记·学习·算法
寒山李白9 分钟前
IDEA连接MySQL服务器数据库指南
java·数据库·mysql·intellij-idea·idea·database
计算机学姐1 小时前
基于SpringBoot的动漫推荐系统【协同过滤推荐算法+词云图+排行榜】
java·vue.js·spring boot·后端·mysql·intellij-idea·推荐算法
亿坊电商3 小时前
PHP后端项目中多环境配置管理:开发、测试、生产的优雅解决方案!
服务器·数据库·php
韩立学长3 小时前
基于Springboot的影视评论网站的设计与实现58py6238(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
未来之窗软件服务4 小时前
未来之窗昭和仙君(四十七)开发商品进销存——东方仙盟筑基期
数据库·进销存·仙盟创梦ide·东方仙盟·昭和仙君·东方仙盟架构
潼心1412o4 小时前
数据结构(长期更新)第5讲:单链表算法题
数据结构
IDOlaoluo5 小时前
TinyRDM 1.2.3 Windows版安装教程(附Redis客户端下载及详细步骤)
数据库·redis·缓存
小光学长5 小时前
基于微信小程序的背单词系统x1o5sz72(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·微信小程序·小程序
我命由我123456 小时前
Derby - Derby 服务器(Derby 概述、Derby 服务器下载与启动、Derby 连接数据库与创建数据表、Derby 数据库操作)
java·运维·服务器·数据库·后端·java-ee·后端框架