当前位置:网站首页>【mysql学习笔记22】索引

【mysql学习笔记22】索引

2022-06-25 09:32:00 yqs_281876918

优缺点

优势劣势
提高数据检索效率,降低数据库的io成本索引列需要占用空间
通过对索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗索引大大提高了查询效率,同时也降低了更新表的效率,因为更新表的同时也需要更新索引

索引结构

索引结构描述
B+Tree索引(默认)最常见的索引类型,大部分引擎都支持
Hash索引底层原理是哈希表,不支持范围查询,只能够精确匹配
R-Tree常用于地理空间数据类型
Full-text(全文索引)是一种通过建立倒排索引,快速匹配文档的方式

各引擎对索引的支持

在这里插入图片描述

索引分类

分类含义特点关键字
主键索引针对于表中主键创建的索引默认自动创建,只能有一个PRIMARY
唯一索引避免一个列有重复值可以有多个UNIQUE,可以在建表的时候就指定,也可以后期手动添加
常规索引快速定位数据可以有多个无,需手动创建
全文索引快速进行文本检索可以有多个FULLTEXT

拓展:列值唯一就是依靠唯一索引实现的。

分类含义特点
聚集索引将数据存储与所以放到一块,索引结构的叶子节点保存了行数据必须有,且只有一个,创建表时会自动将主键作为聚集索引,如果没有主键,使用第一个唯一索引作为聚集索引,如果都没有,InnoDB会自动一个隐藏的rowid作为聚集索引
二级索引将数据与索引分开存储,索引结构的叶子节点存的是对应的主键可以存在多个

实例

在这里插入图片描述
比如执行select * from user where name =‘Arm’;
那么就会先去name索引里面检索Arm,查询到Arm里面对应的id是10,那么就会拿着这个10去聚集索引里面查找具体数据,然后返回。这个过程叫做“回表查询”。

创建索引

create [unique|fulltext] index index_name on table_name (index_col_name1,…);

查看索引

show index from table_name;

删除索引

drop index index_name on table_name;

原网站

版权声明
本文为[yqs_281876918]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_31618549/article/details/125417837