暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
mysql有哪些索引类型.pdf
56
7页
0次
2024-02-21
免费下载
mysql 有哪些索引类型
索引类型有:1b-树索引,使表中的每一行都会在索引上有一个对应值;2
哈希索引,可根据索引列对应的哈希值的方法获取表的记录行;3、普通索引,
允许在定义索引的列中插入重复值和空值;4、唯一索引,可以避免数据出现重
复;5、主键索引,是为主键字段创建的索引;6、空间索引,是对空间数据类
型的字段建立的索引;7、全文索引,用来查找文本中的关键字;8、单列索
引,即索引只包含原表的一个列。
本教程操作环境:windows7 系统、mysql8 版本、Dell G3 电脑。
MySQL 索引类型详解
索引的类型和存储引擎有关,每种存储引擎所支持的索引类型不一定完全相
同。MySQL 索引可以从存储方式、逻辑角度和实际使用的角度来进行分类。
存储方式区分
根据存储方式的不同,MySQL 中常用的索引在物理上分为 B-树索引和
HASH 索引两类,两种不同类型的索引各有其不同的适用范围。
1) B-树索引
B-树索引又称为 BTREE 索引,目前大部分的索引都是采用 B-树索引来存储
的。
B-树索引是一个典型的数据结构,其包含的组件主要有以下几个:
叶子节点:包含的条目直接指向表里的数据行。叶子节点之间彼此
相连,一个叶子节点有一个指向下一个叶子节点的指针。
分支节点:包含的条目指向索引里其他的分支节点或者叶子节点。
根节点:一个 B-树索引只有一个根节点,实际上就是位于树的最顶
端的分支节点。
基于这种树形数据结构,表中的每一行都会在索引上有一个对应值。因此,在
表中进行数据查询时,可以根据索引值一步一步定位到数据所在的行。
B-树索引可以进行全键值、键值范围和键值前缀查询,也可以对查询结果进行
ORDER BY 排序。但 B-树索引必须遵循左边前缀原则,要考虑以下几点约
束:
查询必须从索引的最左边的列开始。
查询不能跳过某一索引列,必须按照从左到右的顺序进行匹配。
存储引擎不能使用索引中范围条件右边的列。
2) 哈希索引
哈希(Hash)一般翻译为散列,也有直接音译成哈希的,就是把任意长度
的输入(又叫作预映射,pre-image)通过散列算法变换成固定长度的输出,该
输出就是散列值。
哈希索引也称为散列索引 HASH 索引MySQL 目前仅有 MEMORY 存储
引擎和 HEAP 存储引擎支持这类索引。其中,MEMORY 存储引擎可以支持
B-树索引和 HASH 索引,且将 HASH 当成默认索引。
HASH 索引不是基于树形的数据结构查找数据,而是根据索引列对应的哈希值
的方法获取表的记录行。哈希索引的最大特点是访问速度快,但也存在下面的
一些缺点:
MySQL 需要读取表中索引列的值来参与散列计算,散列计算是一
个比较耗时的操作。也就是说,相对于 B-树索引来说,建立哈希索
引会耗费更多的时间。
不能使用 HASH 索引排序。
HASH 索引只支持等值比较,如=”“IN()“”
HASH 索引不支持键的部分匹配,因为在计算 HASH 值的时候是
通过整个索引值来计算的。
逻辑区分
根据索引的具体用途,MySQL 中的索引在逻辑上分为以下 5 类:
1) 普通索引
普通索引 MySQL 中最基本的索引类型,它没有任何限制,唯一任务就是加
快系统对数据的访问速度。
普通索引允许在定义索引的列中插入重复值和空值。
创建普通索引时,通常使用的关键字是 INDEX KEY
1
下面在 tb_student 表中的 id 字段上建立名为 index_id 的索引。
1
CREATE INDEX index_id ON tb_student(id);
of 7
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。