【数据库】索引知识

本文聚焦MySQL索引知识。介绍了MySQL数据存储结构,指出索引可将无序数据变为有序。详细阐述索引分类,包括聚集索引以主键为索引,非聚集索引以非主键为索引,还有联合索引。还提及MyISAM索引方案及创建、删除索引的SQL语句。

数据库的基本知识了解之后,就要学习索引了。 说句实话,没学索引,我真的不敢说我 熟悉数据库。

 

Mysql 的数据存储结构:

每个数据页由7部分组成,每个数据页的用户记录依靠一个单向链表维护,数据页之间依靠一个双向链表维护。

索引 通过 添加 目录记录页,将无序的数据 变成有序的数据。

一篇文章可以解释的清清楚楚: MYSQL的索引

mysql的数据存储依靠 页 来存储。页分为 目录记录页和用户数据记录页。

通过 record_type 的值来区分。0:用户记录     1:目录记录     2: 最小记录     3:最大记录

 也就是是个B+数的结构。B+树属于 平衡二叉树的一种,通过二分法来查询数据,效率极高。

 

索引分为 : 聚集索引 和 非聚集索引

聚集索引: 以主键作为索引的方式。维护一个B+树。叶子节点是 用户数据。

查询过程,通过最高级的 目录记录页开始 二分法查询,直到查询到 叶子节点,找到对应的主键的用户记录。

非聚集索引:以非主键作为索引的方式。也称为二级索引。

非聚集索引,维护一颗 非主键 的 B+树, 在查询某个用户记录时,通过 某个字段,比如 name,开始二分查找B+树,一层一层查找,直到叶子节点,此时找到的 是   name 和 id(主键) 的一个对应关系,而没有其他的用户数据。

此时 需要通过 查找到的 id 作为主键,到 主键的B+树,查询 记录,同样 二分法一层一层 查找 目录记录页,直到 用户数据页,找到 对应的用户记录。

联合索引:就是多个字段组成的索引。比如: c2 、c3字段。建立B+树的时候,先按照c2 排序,只要c2相等的时候,才按照c3 排序。

 

MyISAM 的索引方案

 

创建和删除索引 SQL语句

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值