为了账号安全,请及时绑定邮箱和手机立即绑定

请问什么是索引啊 代码中如何看出索引

感觉老师是不是没有解释索引???、、好晕

正在回答

2 回答

我来回答吧,索引是为了查询数据库时能快速检索到数据的一种针对Innodb存储引擎的一种数据结构。采用了B+树,该树是一种多路搜索树,通过这种数据结构可以在写/查询时达到O(lgN)的时间复杂度,因为它的树高最高为20。索引的执行原理是:普通索引的每个node节点的key值为改索引字段本身,如身份证这个字段card_no 建索引的话,6223231992xxx98就是key值,而value 的值为id索引树(id也是索引树组织,叫聚簇索引)的值,如1000001.通过card_no进行搜索时,先从card_no的树中找到 card_no=6223231992xxx9 的树节点,然后通过key获取到value = 1000001,然后进行回表(回表是指普通索引树到聚簇索引树查找数据的过程,注意:聚簇索引树的node 节点 ,如id,其key值为id的值id=1000001,vaule存储了该行所有的数据,如name,age,id,card_no等所有字段,回表就是从该行记录获取指定数据。),查到需要的数据即返回。

0 回复 有任何疑惑可以回复我~

索引其实是一个人为概念,用于确定某一行记录或者某一个字段,只要是在这一维度具有唯一性的值都可以被作为索引使用。为了规范使用,所以sql语言规定了主键,而字段名称被设置成无法重名也可以被作为索引,这样就可定位表中任何一个值了。
SELECT name FROM users WHERE id = 1;

就像这个语句,其实上除了id和name作为索引,users其实也可以是被认为一个索引,定位了来自哪一个表。
(这些是我个人对SQL中索引的理解)

0 回复 有任何疑惑可以回复我~
#1

DimBottom

在第9-5有解释
2019-08-17 回复 有任何疑惑可以回复我~
#2

慕桂英0123511

users是表怎么就成索引了,而且一般不会用name做索引,name的数据不是唯一的。id本身是自带索引的,叫聚簇索引,就算不显示的建立id这种主键索引,innodb也会为我们自动建立一个索引叫自索引。
2019-08-28 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       397051    人
  • 解答问题       3350    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

请问什么是索引啊 代码中如何看出索引

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信