MYSQL8数据库索引

文章详细介绍了MySQL8中的索引类型,包括哈希索引、B+Tree索引(普通索引、主键索引、唯一索引)、全文索引、空间索引和组合索引。强调了索引在提高查询效率中的重要作用,以及不同类型的索引在等值查询、范围查询、排序和特殊数据类型搜索的应用。同时,文章还涵盖了创建、查看和管理索引的方法,包括隐藏和删除索引的操作。
摘要由CSDN通过智能技术生成

MYSQL索引简介

索引的最大作用提高查询效率
image.png

image.png


索引的原理

image.png


索引相关算法

在这里插入图片描述


Hsh算法

image.png


二叉树

image.png


平衡二叉树

image.png


BTREE树

image.png


MyISAM引擎使用B+Tree

image.png


InnoDB引擎使用B+Tree

image.png


MYSQL索引的分类

  1. 哈希索引:哈希索引适用于全值匹配的等值查询,但不支持范围查询和排序操作。哈希索引通常对大型数据集进行快速数据查找使用,例如内存缓存等。
  2. 全局索引:全局索引是指跨多个分区的索引。它可以提高查询效率,但需要更多的磁盘空间和计算资源。

image.png

  • 单列索引:
    • 普通索引(B-Tree索引):MySQL 8中,普通索引(也称为B树索引)是最常用的一种索引类型。它是基于B树数据结构实现的,能够快速定位到符合条件的记录。B-Tree索引是MySQL最常用的索引类型。它适用于等值查询、范围查询和排序操作。B-Tree索引通常对主键唯一约束列创建。
    • 唯一索引:唯一索引是一种特殊的B-Tree索引,用于确保列中的值是唯一的。它与表的唯一约束关联,并在查询中用作唯一性约束。
    • 主键索引:主键索引是一种特殊的B-Tree索引,它是唯一的,并且不能为NULL。它与表的主键关联,并在查询中用作主键约束。
  • 组合索引: 指的是在建立索引的时候使用多个字段
  • 全文本索引:全文本索引用于处理自然语言文本的搜索,而不是对表中的数值进行搜索。全文本索引在执行全文本搜索时,可以使用分词器来拆分文本并生成索引。MySQL 8支持全文本索引。
  • 空间索引:空间索引适用于地理空间和几何对象的存储和查询。它可以加速空间数据的查询,如半径查询、边界框查询等。

Hash索引–重点

image.png
image.png


单列索引


普通索引

https://blog.csdn.net/omaidb/article/details/130204123


主键索引

创建带有主键约束的表时,MYSQL会自动主键列上建立一个索引,这就是主键索引。主键具有唯一且不允许为NULL的特点。所以他是一种特殊的唯一约束
image.png


唯一索引

https://blog.csdn.net/omaidb/article/details/130204650


空间索引

https://blog.csdn.net/omaidb/article/details/130204494


全文索引

https://blog.csdn.net/omaidb/article/details/130204562


组合索引

组合索引也叫复合索引,指的是在建立索引的时候使用多个字段
例如:

  • 同时使用身份证手机号建立索引,同样的可以建议为普通索引唯一索引
  • 复合索引的使用要符合最左原则

创建索引-组合索引

image.png

-- 创建组合索引的基本语法
CREATE index 索引名 on student(1,2);

-- 示例
CREATE index index_phone_name on student(phone_num,name);

查看创建的组合索引

image.png


索引的操作

image.png


创建索引的原则

image.png


查看索引

使用mysql图形化工具查看
image.png


查看数据库所有索引

image.png

-- 查看数据库中所有索引
SELECT * FROM mysql.`innodb_index_stats` AS a WHERE a.`database_name`='库名';

image.png


查看表中所有索引

image.png

-- 查看表中所有索引
SHOW index FROM 表名;

image.png


隐藏索引

https://www.qycn.com/xzx/article/582.html

-- 隐藏一个索引的语法
ALTER TABLE t ALTER INDEX i INVISIBLE;

-- 恢复显示该索引的语法是:
ALTER TABLE t ALTER INDEX i VISIBLE;

删除索引

image.png

-- 删除索引
-- drop删除索引
DROP IF EXISTS 索引名 on 表名;

-- ALTER删除索引
ALTER TABLE 表名 DROP index 索引名;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

识途老码

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值