MySql索引

本文详细介绍了MySQL索引的原理、类型和优缺点,包括主键索引、普通索引、唯一索引、全文索引等,并探讨了B+树作为索引数据结构的优势。同时,文章强调了最左前缀匹配原则在联合索引中的应用,以及索引创建和维护的注意事项。
摘要由CSDN通过智能技术生成

MySql索引

在公司入职后第一个工作安排就是看数据库,看表结构,看SQL语句。索引在其中是一个很重要的角色。所以将索引进行一个系统的学习

索引是什么

官方介绍:帮助MySQL高效获取数据的数据结构。其目的就是快速查询和检索数据。如果把数据库看成一本书的话,索引就是这本书的目录。

索引是个文件,它本身也很大,就像数据一样不可能完全存储在内存中。所以索引通常存储在文件中(可能存储在单独的索引文件中,也可能存储在数据文件中)。

索引有很多种(具体后文介绍)。默认都是使用B+树的数据结构

索引的优缺点
优点
  • 使用索引可以加快数据的检索速度,提高数据检索效率,降低数据库IO的成本
  • 索引会对数据进行排序降低了数据排序的成本,就按照索引顺序排序相对于order by 语句而言,效率提升很多
缺点
  • 索引会占据磁盘空间
  • 索引的创建和维护需要大量时间。如果对表中结构进行修改的时候,那么索引也需要做相对的修改。索引虽然会提高查询效率,但是会降低更新表的效率。比如每次对表进行增删改操作,MySQL不仅要保存数据,还有保存或者更新对应的索引文件。
索引类型

主键索引+二级索引(起辅助的作用)(主键索引后的五个)

主键索引

索引列中的值必须是唯一的有,不允许有空值

普通索引(Index)

最基本的索引类型,没限制,普通索引的唯一作用就是为了快速查询数据,,允许在定义索引的列中插入重复值和空值

唯一索引(Unique Key)

唯一索引也是一种约束。唯一索引的属性列不能出现重复的数据,但是允许数据为 NULL,一张表允许创建多个唯一索引。 建立唯一索引的目的大部分时候都是为了该属性列的数据的唯一性,而不是为了查询效率。

全文索引(Full Text)

全文索引的目的是为了检索大文本数据中的关键字信息。只能在文本类型CHAR,VARCHAR,TEXT类型字段上创建全文索引。当字段长度比较大时,如果创建普通索引,在用like进行模糊查询时候效率低下。Mysql5.6 之前只有 MYISAM 引擎支持全文索引,5.6 之后 InnoDB 也支持了全文索引。

前缀索引(Prefix)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值