【数据库】索引及索引底层实现实现

数据库索引:

索引是依赖数据库建立的,作用是,用来提高表中数据的查询速度,将它比作一本书的目录,使用它可以提高数据库的查询速度

目的就是加快表中的查找和排序。简单来说索引就是数据结构。

什么情况下会用到索引:只有经常查询某字段中的数据时,才需要在表的字段上建立索引

索引的类型:普通索引、唯一索引、聚焦索引、主键索引、全文索引

数据库索引底层实现:

数据库的底层索引是用B树和B+树实现的

为什么使用B树和B+树,不用红黑树?

红黑树等数据结构也可以用来实现索引,但是文件系统以及数据库普遍采用B-Tree/B+Tree作为索引结构。

因为:索引本身也很大,索引往往是以索引文件的形式存储在磁盘上,故,索引查找的过程就会产生磁盘的I/O操作,相比于内存存取,I/O存取消耗要高几个数量级,所以索引的优劣最重要的指标就是在查找过程中的磁盘I/O存取次数

B-Tree/B+Tree的性能分析:

    一般使用磁盘I/O次数评价索引结构的优劣。B树将一个节点的大小设为一个页,每次新建节点时,直接申请一个页的空间,这样就保证一个节点物理上也存储在一个页里,计算机存储分配是按页对齐的,就实现了一个node只需要磁盘访问一次,我们可以获得最大数量的数据.所以,B树的深度决定了要访问磁盘I/O的次数.而红黑树这种结构,h要大的多.由于逻辑上很近的节点物理上可能很远,无法利用其局部性.

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章