MYSQL8数据库索引
MYSQL索引简介
索引的最大作用是提高查询效率。

索引的原理

索引相关算法

Hsh算法

二叉树

平衡二叉树

BTREE树

MyISAM引擎使用B+Tree

InnoDB引擎使用B+Tree

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

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


单列索引
普通索引
https://blog.csdn.net/omaidb/article/details/130204123
主键索引
创建带有主键约束的表时,MYSQL会自动在主键列上建立一个索引,这就是主键索引。主键具有唯一且不允许为NULL的特点。所以他是一种特殊的唯一约束。
唯一索引
https://blog.csdn.net/omaidb/article/details/130204650
空间索引
https://blog.csdn.net/omaidb/article/details/130204494
全文索引
https://blog.csdn.net/omaidb/article/details/130204562
组合索引
组合索引也叫复合索引,指的是在建立索引的时候使用多个字段;
例如:
- 同时使用
身份证和手机号建立索引,同样的可以建议为普通索引或唯一索引 复合索引的使用要符合最左原则
创建索引-组合索引

-- 创建组合索引的基本语法
CREATE index 索引名 on student(列1,列2);
-- 示例
CREATE index index_phone_name on student(phone_num,name);
查看创建的组合索引

索引的操作

创建索引的原则

查看索引
使用mysql图形化工具查看
查看数据库所有索引

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

查看表中所有索引

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

隐藏索引
https://www.qycn.com/xzx/article/582.html
-- 隐藏一个索引的语法
ALTER TABLE t ALTER INDEX i INVISIBLE;
-- 恢复显示该索引的语法是:
ALTER TABLE t ALTER INDEX i VISIBLE;
删除索引

-- 删除索引
-- drop删除索引
DROP IF EXISTS 索引名 on 表名;
-- ALTER删除索引
ALTER TABLE 表名 DROP index 索引名;
文章详细介绍了MySQL8中的索引类型,包括哈希索引、B+Tree索引(普通索引、主键索引、唯一索引)、全文索引、空间索引和组合索引。强调了索引在提高查询效率中的重要作用,以及不同类型的索引在等值查询、范围查询、排序和特殊数据类型搜索的应用。同时,文章还涵盖了创建、查看和管理索引的方法,包括隐藏和删除索引的操作。
2103

被折叠的 条评论
为什么被折叠?



