B树索引的相关概念

Java77

B树索引的相关概念

索引与表一样,也属于段(segment)的一种。里面存放了用户的数据,跟表一样需要占用磁盘空间。只

但是,索引中的数据存储形式与表中的数据格式非常不同。在理解索引时,您可以想象一本书,书的内容等同于表中的数据,书前面的目录等同于表的索引。同时,通常情况下,索引占用的磁盘空间要比表占用的空间小得多。索引的主要目的是加快数据搜索速度,同时确保数据的唯一性。

[En]

However, the data storage form in the index is very different from that in the table. When understanding the index, you can imagine a book in which the content of the book is equivalent to the data in the table, and the directory in front of the book is equivalent to the index of the table. At the same time, in general, the disk space occupied by indexes is much smaller than that of tables. The main purpose of indexes is to speed up the search of data, and also to ensure the uniqueness of data.

但是,索引作为一种可选的数据结构,你可以选择为某个表里的创建索引,也可以不创建。这是因为一旦创建了索引,就意味着oracle对表进行DML(包括INSERT、UPDATE、DELETE)时,必须处理额外的工作量(也就是对索引结构的维护)以及存储方面的开销。所以创建索引时,需要考虑创建索引所带来的查询性能方面的提高,与引起的额外的开销相比,是否值得。

从物理上说,索引通常可以分为:分区和非分区索引、常规B树索引、位图(bitmap)索引、翻转(reverse)索引等。其中,B树索引属于最常见的索引,由于我们的这篇文章主要就是对B树索引所做的探讨,因此下面只要说到索引,都是指B树索引。

B树索引是一个典型的树结构,其包含的组件主要是:

1) 叶子节点(Leaf node):包含条目直接指向表里的数据行。

2) 分支节点(Branch node):包含的条目指向索引里其他的分支节点或者是叶子节点。

3) 根节点(Root node):一个B树索引只有一个根节点,它实际就是位于树的最顶端的分支节点。

可以用下图一来描述B树索引的结构。其中,B表示分支节点,而L表示叶子节点。

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长