老师,我想问下,索引到底是什么?

来源:1-10 主键和唯一索引操作

China_Wang

2019-07-10 12:21:32

  1. 唯一索引和普通索引和主键索引都什么区别,分别有什么作用?

  2. 索引中的索引名称又有什么作用呢?

写回答

3回答

吃吃吃鱼的猫

2019-07-12

同学你好,

1、字段名称

2、索引名称查询不到数据,查询时就是使用字段名称,例如:id。

3、首先索引名称无法检索数据,查询数据时是通过表中的字段进行检索,例如以下语句中的where id=1

select * from where id=1;


为该字段创建索引后,再使用该字段进行检索效率要高的原因是:

没有为字段创建索引时,表中的数据没有特定的排列顺序,顺序就是随机无序的。


可以说,一张没有索引的数据表,就像一个只有书柜而没有索引卡片柜的图书馆,书库里面塞满了一堆乱七八糟的图书。当读者对管理员提交查询请求后,管理员就一头钻进书库,对照查找内容从头开始一架一柜的逐本查找。运气好的话,在第一个书架的第一本书就找到了,运气不好的话,要到最后一个书架的最后一本书才找到。


创建索引类似于为书柜创建了索引卡片,效率自然会变快呢~


如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

0

好帮手慕阿满

2019-07-10

同学你好,索引相当于一本书的目录,如果给一个字段设置唯一索引,那么该字段的值是不能重复的。如果是主键索引,默认该字段是唯一并且不为空,还可以给主键字段设置自增。索引中的索引名称就是标识,一个索引对应一个索引名称,根据该索引名称可以找到该索引。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

1
hhina_Wang
h 那么,索引名称和字段名称又有什么区别?既然索引相当于是目录,意思就是查找某个字段的时候可以通过索引名称去查找。但是关键在于,查找的时候为什么不直接通过字段名称去查找呢?字段名称也不会重复吧,既然都是唯一标识,为什么还要设定索引名称呢?
h019-07-12
共1条回复

吃吃吃鱼的猫

2019-07-12

同学你好,这里给同学举个小例子:

如下图所示:

http://img.mukewang.com/climg/5d282571000102a306190200.jpg

字段名称是id,category_id,name等上图标识的字段。

索引是为某一个字段上加上索引,使我们根据此字段查询时速度更快。

而索引名称就是为这个索引起一个名字。一般情况下,我们不会使用到索引名称。

例如:

ALTER TABLE `book` ADD INDEX index_name ( `id` )

这是为表book的id字段添加索引,索引名称是index_name。

在开发中,因为经常执行根据id字段查询数据,所以为id字段加上索引后,下面的查询查询语句速率就会提高。

select * from book where id=1;

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

0
hhina_Wang
h 还是有点小小的不明白 1.我们查询的时候通常是用字段名称查询还是用索引名称查询呢? 2.既然索引名称和字段名称都可以查询,为什么不直接使用字段名称查询呢? 3.如果是索引名称检索比字段名称检索要快,那么原理是什么呢?
h019-07-12
共1条回复

0 学习 · 8016 问题

查看课程