探索數據存儲的奧秘:深入理解B樹與B+樹

  • key value 類型的數據
  • 紅黑樹(最優二叉樹,內存最優),時間復雜度:O(logn),調整方便;一個結點分出兩個叉
  • B樹一個節點可以分出很多叉
  • 數據量相等的條件下:紅黑樹的層數很高,B樹的層數就會比較低(一個節點可以分出很多叉)
  • 層數比較低,查找數據的時間比較少;層數影響查詢數據的次數
數據以文件的形式存儲
  • 為什么內存(用紅黑樹)不用B樹?
減少尋址次數,增加對比次數(B樹);減少對比次數,增加尋址次 數(紅黑樹);磁盤尋址時間較長,所以要減少尋址次數,用B樹。
  • 數據庫底層的數據結構是B+樹,提高查詢效率。可用于區間查詢
如: select * from user where id>=10 and id<=18
  • B+ 樹的優點在于:
  1. 由于B+樹在非葉子結點上不包含真正的數據,只當做索引使用,因此在內存相同的情況下,能夠存放更多的key。
  2. B+樹的葉子結點都是相連的,因此對整棵樹的遍歷只需要一次線性遍歷葉子結點即可。而且由于數據順序排列并且相連,所以便于區間查找和搜索。而B樹則需要進行每一層的遞歸遍歷。
  • B樹的優點在于:
  1. 由于B樹的每一個節點都包含key和value,因此我們根據key查找value時,只需要找到key所在的位置,就能找到value,但B+樹只有葉子結點存儲數據,索引每一次查找,都必須一次一次,一直找到樹的最大深度處,也就是葉子結點的深度,才能找到value。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/65689.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/65689.shtml
英文地址,請注明出處:http://en.pswp.cn/web/65689.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

聯邦大語言模型典型系統: FATE - LLM、FedLLM、FederatedScope - LLM、PrimiHub

聯邦大語言模型典型系統: FATE - LLM、FedLLM、FederatedScope - LLM、PrimiHub 目錄 聯邦大語言模型典型系統: FATE - LLM、FedLLM、FederatedScope - LLM、PrimiHubPEFT 技術及簡單舉例PEFT 技術代碼實現提示詞工程不僅僅在聊天對話框實現,還可以再代碼中實現聯邦大語言模…

L1G5000 XTuner 微調個人小助手認知

使用 XTuner 微調 InternLM2-Chat-7B 實現自己的小助手認知 1 環境配置與數據準備步驟 0. 使用 conda 先構建一個 Python-3.10 的虛擬環境步驟 1. 安裝 XTuner 修改提供的數據步驟 0. 創建一個新的文件夾用于存儲微調數據步驟 1. 創建修改腳本步驟 2. 執行腳本步驟 3. 查看數據…

網絡協議安全的攻擊手法

1.使用SYN Flood泛洪攻擊&#xff1a; SYN Flood(半開放攻擊)是最經典的ddos攻擊之一&#xff0c;他利用了TCP協議的三次握手機制&#xff0c;攻擊者通常利用工具或控制僵尸主機向服務器發送海量的變源端口的TCP SYN報文&#xff0c;服務器響應了這些報文后就會生成大量的半連…

人工智能學習路線全鏈路解析

一、基礎準備階段&#xff08;預計 2-3 個月&#xff09; &#xff08;一&#xff09;數學知識鞏固與深化 線性代數&#xff08;約 1 個月&#xff09;&#xff1a; 矩陣基礎&#xff1a;回顧矩陣的定義、表示方法、矩陣的基本運算&#xff08;加法、減法、乘法&#xff09;&…

Redis 安裝與 Spring Boot 集成指南

安裝 Redis 和將其與 Spring Boot 應用集成是構建高效緩存解決方案的常見步驟。以下是詳細的指南&#xff0c;幫助你在本地環境中安裝 Redis&#xff0c;并在 Spring Boot 項目中配置和使用它。 1. 安裝 Redis Windows 環境 Redis 官方并不直接支持 Windows&#xff0c;但你…

3d打印材料是塑料么?pla petg

3D 打印材料不僅限于塑料&#xff0c;但塑料確實是最常見的材料類型之一。以下是一些常用的3D打印塑料材料的介紹&#xff1a; 1. PLA&#xff08;聚乳酸&#xff09; ? 特點&#xff1a;可生物降解&#xff0c;環保&#xff0c;容易打印&#xff0c;表面光滑。 ? 適用…

linux-磁盤io性能指標!

一. 引文&#xff1a; 平時查看或者監控磁盤io時&#xff0c;基本上都是用的現成的工具/腳本&#xff0c; 對其了解的還是很淺&#xff0c;特參考一些資料整理了下&#xff0c;留個隨筆。 二.磁盤I/O性能指標: 磁盤 I/O 是 Unix/Linux 系統管理中一個非常重要的組成部分。磁盤…

Excel 技巧08 - 如何計算某類(比如紅色背景色)單元格的總和? (★)

本文講了如何在Excel中計算某類(比如紅色背景色)單元格的總和。 1&#xff0c;如何計算某類(比如紅色背景色)單元格的總和&#xff1f; 技巧就是先把它們給標記出來&#xff0c;然后就好統計了。 那么如何找出來呢&#xff1f; 對&#xff0c;就是通過紅色。 按下Ctrl F 點…

awr報告無法生成:常見分析手段

awr報告無法生成:常見分析手段 STATISTICS_LEVEL和OPEN_MODEAWR快照是否能自動生成?AWR快照能否手動生成?日志有無ORA-12751或ORA-32701報錯?MMON進程是否被掛起?排查數據庫隱藏參數分析快照生成錯誤信息分析AWR Snapshot Tracing分析AWR Table Flush是否超時STATISTICS_L…

uni-app無限級樹形組件簡單實現

因為項目一些數據需要樹形展示&#xff0c;但是官網組件沒有。現在簡單封裝一個組件在app中使用&#xff0c;可以無線嵌套&#xff0c;展開&#xff0c;收縮&#xff0c;獲取子節點數據等。 簡單效果 組件TreeData <template><view class"tree"><te…

互聯網架構變遷:從 TCP/IP “呼叫” 到 NDN “內容分發” 的逐浪之旅

本文將給出關于互聯網架構演進的一個不同視角。回顧一下互聯網的核心理論基礎產生的背景&#xff1a; 左邊是典型的集中控制通信網絡&#xff0c;很容易被摧毀&#xff0c;而右邊的網絡則沒有單點問題&#xff0c;換句話說它很難被全部摧毀&#xff0c;與此同時&#xff0c;分…

移遠BC28_opencpu方案_pin腳分配

先上圖&#xff0c;BC28模塊的pin腳如圖所示&#xff1a; 下面看看GPIO的復用管腳 然后我自己整理了一份完整的pin功能列表

Eureka緩存機制

一、Eureka的CAP特性 Eureka是一個AP系統&#xff0c;它優先保證可用性&#xff08;A&#xff09;和分區容錯性&#xff08;P&#xff09;&#xff0c;而不保證強一致性&#xff08;C&#xff09;。這種設計使得Eureka在分布式系統中能夠應對各種故障和分區情況&#xff0c;保…

2025年第三屆“華數杯”國際賽A題解題思路與代碼(Python版)

游泳競技策略優化模型代碼詳解 第一題&#xff1a;速度優化模型 在這一部分&#xff0c;我們將詳細解析如何通過數學建模來優化游泳運動員在不同距離比賽中的速度分配策略。 1. 模型概述 我們的模型主要包含三個核心文件&#xff1a; speed_optimization.py: 速度優化的核…

micro-app【微前端系列教程】禁用樣式隔離

全局禁用樣式隔離 所有應用的樣式隔離都會停止 import microApp from micro-zoe/micro-appmicroApp.start({disableScopecss: true, // 默認值false })指定子應用取消禁用樣式隔離 <micro-app namexx urlxx disableScopecssfalse></micro-app>指定子應用禁用樣式…

深度學習筆記11-優化器對比實驗(Tensorflow)

&#x1f368; 本文為&#x1f517;365天深度學習訓練營中的學習記錄博客&#x1f356; 原作者&#xff1a;K同學啊 目錄 一、導入數據并檢查 二、配置數據集 三、數據可視化 四、構建模型 五、訓練模型 六、模型對比評估 七、總結 一、導入數據并檢查 import pathlib,…

FFmpeg Muxer HLS

使用FFmpeg命令來研究它對HLS協議的支持程度是最好的方法&#xff1a; ffmpeg -h muxerhls Muxer HLS Muxer hls [Apple HTTP Live Streaming]:Common extensions: m3u8.Default video codec: h264.Default audio codec: aac.Default subtitle codec: webvtt. 這里面告訴我…

Apache和PHP:構建動態網站的黃金組合

在當今的互聯網世界&#xff0c;網站已經成為了企業、個人和機構展示自己、與用戶互動的重要平臺。而在這些動態網站的背后&#xff0c;Apache和PHP無疑是最受開發者青睞的技術組合之一。這一組合提供了高效、靈活且可擴展的解決方案&#xff0c;幫助您快速搭建出強大的網站&am…

git相關操作筆記

git相關操作筆記 1. git init git init 是一個 Git 命令&#xff0c;用于初始化一個新的 Git 倉庫。執行該命令后&#xff0c;Git 會在當前目錄創建一個 .git 子目錄&#xff0c;這是 Git 用來存儲所有版本控制信息的地方。 使用方法如下&#xff1a; &#xff08;1&#xff…

Docker Desktop 構建java8基礎鏡像jdk安裝配置失效解決

Docker Desktop 構建java8基礎鏡像jdk安裝配置失效解決 文章目錄 1.問題2.解決方法3.總結 1.問題 之前的好幾篇文章中分享了在Linux(centOs上)和windows10上使用docker和docker Desktop環境構建java8的最小jre基礎鏡像&#xff0c;前幾天我使用Docker Desktop環境重新構建了一個…