关于索引的学习笔记

索引是为了提高数据库的检索效率,避免进行全局扫描的一种机制,与字典类似,快速定位到需要的元素位置;索引是针对字段来使用的

2023/11/15

1.索引的实现

        Mysql中索引的实现一般使用B树或B+树,而非平衡二叉树

  • B树中,节点可以存储键和数据。
  • B+树中,叶节点包含所有键和数据,内部节点只包含键。这种结构使得范围查询更加高效,因为叶节点以链表形式相连。

补充一下:平衡二叉树的代表

  • AVL树:对于查找密集型应用更优,因为它们更加平衡。
  • 红黑树:在插入和删除操作更频繁的应用中表现更好,因为重新平衡的成本较低。

2.索引的分类

单列索引:

        主键索引:每个主键自动创建;不可含空值

        唯一索引:UNIQUE唯一约束列自动创建;可含空值

        普通索引:普通字段索引

组合索引:

        多个字段组合起来建立一个索引,顺序是很重要的

        组合索引遵循最左前缀原则,只有包含了第一个字段时,才会生效        

        例如:组合索引{A,B,C}最好的检索方式是A或者AB或者ABC的方式

全文索引

        对词语或词组进行索引,适用于大型文本型数据库

3.索引的建立

新建查询create index 索引名 on 表名(字段)

举个例子,我的原表是这样,现在我要查询"Ti Ka Man"

使用EXPLAIN解释我的查询过程

EXPLAIN SELECT * FROM cai WHERE name="Ti Ka Man"

结果如下:  查询了全表的数据一百行

现在我建立一个索引

CREATE INDEX nameindex ON cai(name)

再次查询,查询行数变为了1行,大大提高了检索效率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值