MySQL索引

如果把MySQL的表比作一本书,那索引就像这本书的目录,可以帮助我们快速找到想查找的记录.避免出现顺序遍历的情况.

索引的用途:

避免进行遍历, 优化查询速度(会降低插入和删除速度).

索引的工作原理(底层数据结构, B+树):

B+树

B+树的特点:
  1. N叉树结构(树的高度降低, 查询加快);
  2. 每一层兄弟节点之间相互连通(类似于链表)(遍历起来更方便);
  3. 叶子节点上储存数据, 非叶子节点用来辅助查找, 不储存数据.
B+树的优势:
  1. 与哈希相比, 可以处理模糊查询的情况;
  2. 与二叉搜索树相比, 高度更低, 查询效率更高;
  3. 与B树相比, 非叶子节点不再存储数据,数据只存储在同一层的叶子节点上; 叶子之间增加链表, 获取所有节点不再需要中序遍历; 当定位min与max后, 中间叶子节点不需要中序回溯(相比于B树的最大优势).

创建主键约束(PRIMARY KEY)、唯一约束(UNIQUE)、外键约束(FOREIGN KEY)时,会自动创建对应列的索引.
通过主键索引查询的效率要比通过其他列的索引查询效率更高.
因为主键索引中叶子节点上存的数据是一条条的记录, 而其他列上索引叶子节点上存的是对应主键的id.
通过其他列来查询的话,需要查两次(回表).

查看表结构
查看索引:

show index from [表名];

查看索引

创建索引:

create index [索引名] on [表名];

创建索引

注: 主键索引不可删除
删除索引:

drop index [索引名] on [表名];

删除索引

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值