热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

区分SQLite中的B-树和B+树索引和存储

树,随着数据量的增长,树能自己调整自己。可以容纳很多数据。利用对比来快速定位,往往对比次数与树的深度有很大关系。一般成对

树,随着数据量的增长,树能自己调整自己。可以容纳很多数据。利用对比来快速定位,往往对比次数与树的深度有很大关系。一般成对

在网上看一些帖子的时候。发现有人说Sqlite中组织管理数据库文件存储的机制为B-树。

本人觉着这么说非常的不严谨。

于是本人翻出了《the definitive guide to sqlite》SECOND EDITON。经过再次查阅,想在这里总结一下。

在Sqlite中B-树和B+树的出处的却别,换句话说。就是SQLite这个嵌入式数据库中,索引机制和文件存储机制的区别。

1.索引

对索引多说几句吧,我们去砍树,,可以用手把它推到,但是利用斧子可以很快的把树干倒。

检索操作(更新,删除,插入都会用到检索操作)就如砍树,索引就是我们的斧子。

首先他和好用。加快了检索速度。同时如斧子一样。不是让你白用的。斧子是买来的。就是借来的也是欠了个人情的。总之就是使用索引(斧子)去检索数据(去看书)是需要代价的。

没错,这是必须的。斧子放在家里占地方啊。索引也是占内存的啊。亲,而且如果不是内存数据库,索引还要占外存的地方呢。

斧子花钱了。除了检索操作不需要更新索引,删除,插入都要更新索引啊,亲,这就是辅助性工具的开销。

我们一定要明确一点。索引和表、数组、一个变量一样是实实在在的在我们的硬盘上或者内存中躺着的。

说的再直白一些,他就是个数据结构(其实数据结构这个词听抽象的,你觉得呢?)。总之就是,占内存,我们用程序可以直接控制他的。

他可以清清楚楚的躺在我们的面前。不要嫌我啰嗦,这些就是索引的本质。

上面说到,索引和数据结构很近。好吧。我们比较典型的索引数据结构有两大类,1:散列,其通过一个叫散列函数的东西,利用数值计算,便可很快得知目标记录所在散列表位置,然后根据散列表位置里的信息便可快速找到它了。又分静态散列和动态散列,关于他们的知识点,百度吧,谷歌吧。

2:树,随着数据量的增长,树能自己调整自己。可以容纳很多数据。利用对比来快速定位,往往对比次数与树的深度有很大关系。一般成对数级的时间复杂度。一般典型的有B数(又名B-树,不要说有那么一个树叫B减树或者B杠树),B+树,AVL树,红黑树(RBTree)。

关于他们的知识点,百度吧,谷歌吧。。

2.存储

我说的简单些吧。

内存小,外存大。数据库文件大,内存装不下,怎么办?解决方法很简单。先装一部分,先使吧。

很眼熟啊感觉。

操作系统里有木有?(动态或静态)页面管理机制有木有?缺页中断有木有?

这里有个概念“页面(pager)”。sqlite中是这么说的。一个数据库文件被连续的分割成了X个页面,并给个页面号。就是“块儿”和“块儿号”。

这点东西不熟悉的再查查相关资料吧。

3.SQLite中B树和B+树的应用。

上图是从文章开头处的书中,解出来的一段。

linux

推荐阅读
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 如何在PHPcms网站中添加广告
    本文详细介绍了在PHPcms网站后台添加广告的方法,涵盖多种常见的广告形式,如百度广告和Google广告,并提供了相关设置的步骤。同时,文章还探讨了优化网站流量的SEO策略。 ... [详细]
  • Windows 系统下 MySQL 8.0.11 的安装与配置
    本文详细介绍了在 Windows 操作系统中安装和配置 MySQL 8.0.11 的步骤,包括环境准备、安装过程以及后续配置,帮助用户顺利完成数据库的部署。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 在Windows系统上安装VMware Workstation 2022的详细步骤
    本文将详细介绍如何在Windows系统上安装VMware Workstation 2022。包括从官方网站下载软件、选择合适的版本以及安装过程中的关键步骤。此外,还将提供一些激活密钥供参考。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • 本文详细探讨了HTTP 500内部服务器错误的成因、解决方案及其在Web开发中的影响。通过对具体案例的分析,帮助读者理解并解决此类问题。 ... [详细]
  • 在维护公司项目时,发现按下手机的某个物理按键后会激活相应的服务,并在屏幕上模拟点击特定坐标点。本文详细介绍了如何使用ADB Shell Input命令来模拟各种输入事件,包括滑动、按键和点击等。 ... [详细]
  • 百度服务再次遭遇技术问题,疑似DNS解析故障
    近日晚间,百度多项在线服务出现加载异常,包括移动端搜索在内的多个功能受到影响。初步迹象表明,问题可能与DNS服务器解析有关。 ... [详细]
  • 自媒体创作必备工具与软件推荐
    本文将详细介绍自媒体创作者所需的各类工具和软件,包括视频制作、剪辑、发布平台管理等方面的专业建议。 ... [详细]
  • 探讨如何使用工具或方法来自定义百度网盘的提取码,以提高文件分享的安全性和便捷性。 ... [详细]
  • 摘要:为了解决下载速度慢的问题,本文介绍了一种高效的下载方法,并提供了详细的步骤和工具推荐。通过使用百度网盘分享功能,可以显著提高文件传输效率。 ... [详细]
  • 通过与阿里云的合作,牛客网成功解决了跨国视频面试中的网络卡顿问题,为求职者和面试官提供了更加流畅的沟通体验。 ... [详细]
author-avatar
娜娜的乖宝宝699
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有