索引就看这一篇就够了!

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 索引就看这一篇就够了!

文章目录

一、索引介绍

二、索引的分类

三、常见索引介绍

四、索引的使用

五、索引原则

一、索引介绍

MySQL官方对索引的定义为:索引(index)是帮助MySQL高校获取数据的数据结构


提取句子主干,就可以得到索引的本质:索引是数据结构


二、索引的分类

从索引存储结构划分:B Tree索引、Hash索引、FULLTEXT全文索引、R Tree索引


从应用层次划分:普通索引、唯一索引、主键索引、复合索引


从索引键值类型划分:主键索引、辅助索引(二级索引)


从数据存储和索引键值逻辑关系划分:聚集索引(聚簇索引)、非聚集索引(非聚簇索引)


三、常见索引介绍

主键索引(primary key)


唯一标识,主键不可重复,只有一个列作为主键

不允许有空值

唯一索引(unique key)


避免重复的列出现,多个列都可以标识为唯一索引(唯一索引可以有多个但不可重复)

允许有空值

常规索引(key / index)

默认的,可以用index或key关键字来设置

这是最基本的索引类型,没有任何限制

全文索引(FullText)


查询操作在数据量比较少时,可以使用like模糊查询,但是对于大量的文本数据检索,效率很低。如果使用全文索引,查询速度会比like快很多倍。在MySQL 5.6 以前的版本,只有MyISAM存储引擎支持全文索引,从MySQL 5.6开始MyISAM和InnoDB存储引擎均支持。

作用:快速定位数据

和常用的like模糊查询不同,全文索引有自己的语法格式,使用 match 和 against 关键字,比如:

select * from user where match(name) against('aaa');

全文索引使用注意事项:


1)全文索引必须在字符串、文本字段上建立。
 2)全文索引字段值必须在最小字符和最大字符之间的才会有效。(innodb:3-84;myisam:4-84)
 3)全文索引字段值要进行切词处理,按syntax字符进行切割,例如b+aaa,切分成b和aaa

全文索引匹配查询,默认使用的是等值匹配,例如a匹配a,不会匹配ab,ac。如果想匹配可以在布尔模式下搜索a*

select * from user where match(name) against('a*' in boolean mode);

四、索引的使用

1)在创建表的时候给字段增加索引

2)创建完毕后,增加索引

显示所有的索引信息

SHOW INDEX FROM 表名

增加一个索引

-- ALTER TABLE `表名` ADD FULLTEXT INDEX `索引名`(`指定列名`)
ALTER TABLE `student` ADD FULLTEXT INDEX `studentname`(`studentname`)

查看新增索引(选中表名右击设计表 -> 索引)

五、索引原则

1)索引不是越多越好

2)不要对经常变动的数据加索引

3)小数据量的表不需要加索引

4)索引一般加在常用来查询的字段上

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
11月前
|
存储 索引
【软考学习15】索引文件结构、直接索引和间接索引
【软考学习15】索引文件结构、直接索引和间接索引
278 0
|
17天前
|
JSON 自然语言处理 数据格式
5.索引原理
5.索引原理
|
17天前
|
存储 SQL 关系型数据库
MySQL索引,看这一篇就够了!
MySQL索引,看这一篇就够了!
|
SQL 搜索推荐 关系型数据库
一文带你你搞懂索引如何优化!!!
一文带你你搞懂索引如何优化!!!
|
存储 SQL 关系型数据库
【MySQL从入门到精通】【高级篇】(二十六)建了索引就能用么?我看未必。来看看几种索引失效的情况吧
【MySQL从入门到精通】【高级篇】(二十五)EXPLAIN中ref、rows、filtered、Extra字段的剖析 通过前面几篇文章的学习,相信小伙伴们对EXPLAIN命令有了一个更加深入理解。这篇文章我们将来学习索引失效的11种情况。有时候并不是说加了索引,就一定能用上索引,还是要具体情况具体分析。
154 0
【MySQL从入门到精通】【高级篇】(二十六)建了索引就能用么?我看未必。来看看几种索引失效的情况吧
|
算法 C++
数据结构上机实践第八周项目1- 建立顺序串的算法库
数据结构上机实践第八周项目1- 建立顺序串的算法库
156 0
数据结构上机实践第八周项目1- 建立顺序串的算法库
|
存储 关系型数据库 索引
第七章《索引》
第七章《索引》
第七章《索引》
|
SQL 搜索推荐 关系型数据库
B+树索引使用(8)排序使用及其注意事项(二十)
B+树索引使用(8)排序使用及其注意事项(二十)
|
存储 SQL 关系型数据库
索引到底能提升多少查询效率?何时该使用索引?一文快速搞懂数据库索引及合理使用它
索引到底能提升多少查询效率?何时该使用索引?一文快速搞懂数据库索引及合理使用它
463 0
索引到底能提升多少查询效率?何时该使用索引?一文快速搞懂数据库索引及合理使用它
|
存储 缓存 算法
【肝帝一周总结:全网最全最细】☀️Mysql 索引数据结构详解与索引优化☀️《❤️记得收藏❤️》
【肝帝一周总结:全网最全最细】☀️Mysql 索引数据结构详解与索引优化☀️《❤️记得收藏❤️》
99 0
【肝帝一周总结:全网最全最细】☀️Mysql 索引数据结构详解与索引优化☀️《❤️记得收藏❤️》