索引(一):顺序索引(稠密索引,稀疏索引和B+树索引)
来源:互联网 发布:seo入门 编辑:程序博客网 时间:2024/06/09 11:24
索引(一):顺序索引(稠密索引,稀疏索引和B+树索引)
(2017-12-04 18:43:00) <div class="articalTag" id="sina_keyword_ad_area"> <table> <tbody><tr> <td class="blog_tag"> <script> var $tag='数据库,it'; var $tag_code='e4ab2974044a92625265a0e961702d69'; var $r_quote_bligid='a446ddf10102v7hs'; var $worldcup='0'; var $worldcupball='0'; </script> <span class="SG_txtb">标签:</span> <h3><a href="http://search.sina.com.cn/?c=blog&q=%CA%FD%BE%DD%BF%E2&by=tag" target="_blank">数据库</a></h3> <h3><a href="http://search.sina.com.cn/?c=blog&q=it&by=tag" target="_blank">it</a></h3> </td> <td class="blog_class"> <span class="SG_txtb">分类:</span> <a target="_blank" href="http://blog.sina.com.cn/s/articlelist_2756107761_1_1.html">数据库概念与技术</a> </td> </tr> </tbody></table> </div> <!-- 正文开始 --> <div id="sina_keyword_ad_area2" class="articalContent newfont_family"> <p><br>
为了快速随机存取文件中的记录,可以使用索引结构。不管是从字面意思来讲,还是从生活的其他领域来讲,索引都可以被解释为快速定位。
一.聚集索引和非聚集索引
这里“索引”是个抽象的概念,或者说是一个状态概念,而不是具体的某个索引文件;在某个搜索码上建立了索引,我们就说某个属性有索引。所以说,记录文件和索引文件是不同的概念,下面我们来说明
二.索引记录和索引顺序文件
这里的指针指向的是磁盘空间(磁盘块的标识,标识磁盘块内内记录的块内偏移量);
所以可以说,索引记录是在记录文件(简单理解为一个表)的某个属性上建立了索引而生成的;
三.顺序索引的分类
分情况看利弊,如果记录量适中,用稠密索引可以获得较好的响应时间;
如果记录量很多,百万级的,用稠密索引,索引(文件)本身就很难以去维护,因为搜索索引时的跨磁盘块数就至关重要(因为处理数据库请求的主要时间开销就是把块从磁盘读到主存的时间),而索引在磁盘上以顺序文件存储,对数量很多的索引记录的查询就会涉及到多个块,这是我们不希望的。但是对每个块建立稀疏索引已经是公认的利远远大于弊的做法。
对于上述庞大稠密索引的解决办法之一就是建立多级索引,于是就引出了B+树索引的理念。两个概念很像,但是也有不同;
四.B+树索引
索引顺序文件组织最大的缺点就在于,随着文件的增大,索引查找性能和数据扫描性能都会下降。
B+树索引结构是使用最为广泛的,在数据插入和删除的情况下仍能保持执行效率的几种索引结构之一。
B+树索引中的B就是Balance,顾名思义,平衡树,是B树的一种变形;
B+树索引虽然在有数据插入和删除时效率不高,但是,用自己的话来说,就是B+树能做到一步到位,一劳永逸,加上其在查找上的高效,所以才能受到追捧。
上图是一个B+树示意图,叶子节点直接存储记录,在搜索时按照稀疏索引的搜索方法,找到大于最小(相当于小于等于)的那个节点,一级一级往下搜索。
关于B+树的增删导致的节点变动这里不再说了,具体内容可参照数据结构。
</div> <!-- 正文结束 --> <div id="share" class="shareUp"> <div class="share SG_txtb"> 分享: <div class="bshare-custom" style="display:inline;margin-left:5px;"><div class="bsPromo bsPromo2"></div><a title="分享到新浪微博" class="bshare-sinaminiblog" href="javascript:void(0);"></a><a title="分享到微信" class="bshare-weixin" href="javascript:void(0);"></a><a title="分享到QQ空间" class="bshare-qzone" href="javascript:void(0);"></a><a title="分享到豆瓣" class="bshare-douban" href="javascript:void(0);"></a><a title="更多平台" class="bshare-more bshare-more-icon more-style-addthis"></a> </div> </div> <div class="up"> <div title="喜欢后让更多人看到" id="dbox_a446ddf10102v7hs" class="upBox upBox_click" style="cursor: pointer;"> <p ti_title="索引(一):顺序索引(稠密索引,稀疏索引和B+树索引)" id="dbox2_a446ddf10102v7hs" class="count" mnum="3">3</p> <p class="link"><img width="15" height="15" align="absmiddle" src="http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif" class="SG_icon SG_icon34">喜欢</p> </div>
- 索引(一):顺序索引(稠密索引,稀疏索引和B+树索引)
- 稠密索引与稀疏索引
- 数据库索引之稠密索引和稀疏索引
- 数据库索引之稠密索引和稀疏索引
- 数据库稠密索引与稀疏索引
- 数据库稠密索引与稀疏索引
- MySQL (8) 聚集索引 非聚集索引 聚簇索引 稀疏索引 稠密索引
- 区分聚集索引、非聚集索引、聚簇索引、稀疏索引、稠密索引
- 线性索引(稠密索引、稀疏索引即分块索引、多重表、倒排表)
- 稀疏索引
- 索引
- 索引
- 索引
- 索引
- 索引
- 索引
- 索引
- 索引
- 刘强东暗讽马云王健林:为什么还有几千万人极度贫困?这是耻辱!
- 失去了商标品牌的迅雷大数据,变成了摸金狗?
- iOS 11.2 版本紧急修复黑屏 Bug,却遇 FaceID 识别错误,真实原因在此
- 一文读懂马云、马化腾、李彦宏、库克等互联网大佬们都在乌镇干了啥
- 为什么李彦宏和雷军在一起了?
- 索引(一):顺序索引(稠密索引,稀疏索引和B+树索引)
- 雷军:全面屏新零售微信都是我先提的,为什么你们只记住了苹果马云张小龙?
- 搜索引擎技术之倒排索引
- 程序员别再默默付出了,是时候提涨薪的事了
- android jni jbyteArray转char*
- ANDROID样式的开发:SHAPE篇
- How to build intermediate classes.jar in android N
- DAY3
- 搜索引擎技术之网络爬虫