SELECT [列名列表] FROM 表名 WHERE 列名 = xxx;
在⼀个⻚中的查找
假设⽬前表中的记录⽐较少,所有的记录都可以被存放到⼀个⻚中,
在查找记录的时候可以根据搜索条件的不同分为两种情况:
以主键为搜索条件
这个查找过程我们已经很熟悉了,可以在⻚⽬录中使⽤⼆分法
快速定位到对应的槽,然后再遍历该槽对应分组中的记录即可
快速找到指定的记录。
以其他列作为搜索条件
对⾮主键列的查找的过程可就不这么幸运了,因为在数据⻚中
并没有对⾮主键列建⽴所谓的⻚⽬录,所以我们⽆法通过⼆分
法快速定位相应的槽。这种情况下只能从最⼩记录开始依次遍
历单链表中的每条记录,然后对⽐每条记录是不是符合搜索条
件。很显然,这种查找的效率是⾮常低的。
在很多⻚中查找
⼤部分情况下我们表中存放的记录都是⾮常多的,需要好多的数据⻚
来存储这些记录。在很多⻚中查找记录的话可以分为两个步骤:
1. 定位到记录所在的⻚。
2. 从所在的⻚内中查找相应的记录。
在没有索引的情况下,不论是根据主键列或者其他列的值进⾏查找,
由于我们并不能快速的定位到记录所在的⻚,所以只能从第⼀个⻚沿
着双向链表⼀直往下找,在每⼀个⻚中根据我们刚刚唠叨过的查找⽅
式去查找指定的记录。因为要遍历所有的数据⻚,所以这种⽅式显然
文档被以下合辑收录
评论