铁匠Smith先生的专栏

关注Linux系统软件开发、多媒体图形技术、Linux OS技术、多进程多线程并发网络编程、架构模式研究与实践、AI等新技术动向、C/C++最新编程技术、开源代码集成与应用等...

B树在SQLITE中的运用

     SQLITE是一种开源的免费数据库。

     B树为SQLITE提供了算法时间复杂度为o(logN)的查询、插入和删除操作,同时提供了算法时间复杂度为O(1)的对记录的遍历操作。

     B树只关心pages之间的关系。B+树在获取page或即将修改page时都会通知pager对象。当修改一个page时,pager对象确保当传统的rollback journal启用时,修改前的page被拷贝到一个jornal文件。类似的,B树在完成了写操作时会通知pager, pager再根据transaction状态决定需要做什么。

     数据库中的所有的page都是按数字顺序编号,从1开始。一个数据库由多个B书组成,其中B+树用于tables, B-树用于索引indexes.数据库中的每一个table或者index都有一个root page,它定义了首页的位置。所有的root page存放在sqlite_master表中。

    

     B-树中的page由record组成。record也被称为payload.这些record不是你想象的最终的数据库记录,而是更原始的数据记录,包含关键字域和数据域。该数据域,可以包含任何内容。该关键字域是rowid值或primary key值。最终的数据库记录存储在数据域的内部。B-树的工作是排序和导航,并且只需要根据关键字域就能完成这些工作(B+树有些不一样,在之后会说明)。

 

     

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/acs713/article/details/6884642
想对作者说点什么? 我来说一句

B树,B树,B+树,B树简介

2010年09月09日 309KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭