小红花·文摘
  • 首页
  • AI Tokens🪙
  • 排行榜🏆
  • 直播
  • FAQ
Dify.AI
沉浸式翻译 immersive translate
Radim Marek:B-tree 页——有序而稀疏

本文讲解PostgreSQL B-tree索引的存储与膨胀机制。B-tree页与堆页同为8KB,但页内有序且同级页相互链接,每页含高键标记上界。VACUUM只删除死条目,不合并半空页、不截断文件,仅能删除完全空的页。顺序递增的键总落在最右叶,导致左侧空隙无法复用,索引持续膨胀;随机键则能填补空隙。回收空间需用REINDEX CONCURRENTLY或VACUUM FULL重建索引。

Radim Marek:B-tree 页——有序而稀疏

Planet PostgreSQL Planet PostgreSQL · 2026-11-10T22:15:49Z

本文介绍WiredTiger存储引擎中B-Tree叶页的内存结构:新键通过WT_INSERT skiplist插入,已有键的修改挂入WT_UPDATE链表,未提交更新仅挂链不写入磁盘。读路径按时间戳在链上查找可见版本,旧版本在reconcile时移入History Store。文章还提及truncate操作及与日志回放的边界,为后续Reconciliation章节铺垫。

【WiredTiger 内核】B-Tree 与 update chain:未提交更新只挂链

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-07-22T00:00:00Z

本文介绍WiredTiger作为MongoDB默认存储引擎的内核机制,定位为文档库页式B-Tree加旁路History Store,与PG/InnoDB、SQLite、RocksDB等分工明确。文章规划17篇系列,涵盖Session、Cache、Eviction、Reconciliation、Timestamps、Checkpoint等核心流程,并指出脏页须先reconcile才能驱逐,HS体积受更新率与窗口影响,为后续深入解析奠定框架。

【WiredTiger 内核】文档库存储引擎全景:MongoDB 默认引擎的生态位

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-07-22T00:00:00Z

本文介绍WiredTiger存储引擎的缓存机制。缓存按需加载B-Tree页,WT_REF表示页是否在内存,WT_PAGE是已加载形态。缓存计量区分clean和dirty页,dirty页必须经reconcile转换后才能写盘。修改通过WT_UPDATE链和WT_INSERT跳表记录,session和cursor不计入缓存配额。与PostgreSQL不同,WT将内存布局与磁盘格式分离,并支持共享缓存模式。

【WiredTiger 内核】Cache 与 WT_REF:clean/dirty 计量与按需读页

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-07-22T00:00:00Z

本文探讨了FoundationDB的存储引擎,重点比较了Redwood与SQLite派生引擎的区别。Redwood通过多版本B-Tree和前缀压缩技术,提高了吞吐量并降低了写放大。文章指出,存储引擎的选择不会影响分布式事务的隔离性,且引擎切换需谨慎。整体而言,Redwood在设计上弥补了SQLite引擎的不足,适应了更复杂的工作负载需求。

【FoundationDB 内核】SSD Engine 与 Redwood:从 SQLite 派生到版本化 B-Tree

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-07-17T00:00:00Z

SQLite的B-Tree模块分为table b-tree(64位整数key,数据仅存叶子,近似B+Tree)和index b-tree(任意key,不存数据)。页内通过cell pointer array实现逻辑有序与物理位置解耦,插入时无需搬移已有内容。overflow阈值保证索引树最小扇出为4。查找从根页二分至叶子,分裂合并由balance()统一触发,分派至balance_deeper、balance_nonroot或balance_quick。

【SQLite 内核】B-Tree 遍历与分裂:表 B-Tree、索引 B-Tree 与 cell 布局

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-07-17T00:00:00Z

该文章是SQLite内核系列的技术指南,涵盖17篇内容,从单文件格式、Pager缓存、B-Tree分裂到VDBE字节码、WAL日志和锁状态机。文章提供阅读路径和依赖关系,适合嵌入式工程师或从PG/InnoDB转来的读者,帮助理解SQLite的存储、并发与选型对比。

【SQLite 内核】单文件 · Pager · B-Tree · VDBE · WAL · 锁

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-07-17T00:00:00Z

本文为SQLite内核系列首篇,介绍其嵌入式行存数据库的定位:单文件、页式B-Tree、VDBE执行引擎及文件级单写者约束。对比PG/InnoDB服务器行存、RocksDB LSM与DuckDB列存,强调零IPC带来短调用链而非无引擎。规划17篇阅读路线,涵盖Pager、B-Tree、WAL、锁等机制,并锚定学术谱系与开放问题。

【SQLite 内核】嵌入式行存全景:单文件、单写者、零 IPC

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-07-17T00:00:00Z

本文介绍SQLite单文件格式:前100字节为数据库头,记录页大小、版本、计数器等自描述字段;B-Tree页头用1字节区分4种页类型,cell指针数组与内容区相向增长;页1固定为schema根页。通过hexdump实测验证字段,并澄清页大小不可随意更改、页1非用户表等常见误解。

【SQLite 内核】单文件格式与页面头

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-07-17T00:00:00Z

本文介绍SQLite的VDBE字节码执行引擎。sqlite3_prepare_v2将SQL编译为字节码程序,sqlite3_step在虚拟机上执行该程序。通过EXPLAIN分析点查SELECT name FROM t WHERE id=1,展示Transaction→OpenRead→SeekRowid→Column→ResultRow的执行流程。VDBE通过游标调用B-Tree,不直接读文件。强调opcode细节非稳定API,升级后需重新验证。

【SQLite 内核】VDBE 字节码执行:prepare、step 与寄存器机

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-07-17T00:00:00Z

Without an index, every query scans every row. WHERE id = 42 on a million-row table reads all million rows to find one. That’s O(n) — slow. A B+ tree index is a sorted data structure that maps key...

OLTP – Phase 8 B-Tree Index

Kimserey Lam’s website, Software Development blog posts, videos and tutorials Kimserey Lam’s website, Software Development blog posts, videos and tutorials · 2026-06-13T05:00:00Z

自1972年提出以来,B-tree成为数据库和文件系统的核心数据结构,因其与磁盘I/O模型的契合而减少随机读次数,查找效率高,适合大规模数据。B+tree是其变体,优化了范围查询和并发控制。节点分裂与合并是保持平衡的关键操作。现代存储引擎如InnoDB和PostgreSQL基于B-tree,适应硬件演进,继续发挥重要作用。

B-tree 深度解剖:从磁盘 I/O 模型到 boltdb 源码

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-04-18T00:00:00Z

本文探讨了五种主流Linux文件系统的树形结构设计,包括ext4的Extent Tree、XFS的B+Tree、btrfs的CoW B-Tree、ZFS的间接块树和F2FS的NAT/SIT。分析了每种文件系统的优缺点、性能表现及适用场景,强调了树形结构在处理大文件和提高I/O效率方面的重要性。

文件系统中的树:extent、HTree 与 CoW B-tree 的代价

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2025-07-15T00:00:00Z
卢卡斯·菲特尔:Postgres与SQL Server:B-Tree索引差异及去重的优势

优化查询性能时,索引是数据库工程师的重要工具。PostgreSQL和SQL Server都使用B-Tree索引,但实现和维护方式不同。SQL Server通过聚集索引物理排序数据,而PostgreSQL将表存储为无序堆,索引指向堆中的元组。PostgreSQL 13版本引入去重功能,显著减少索引大小,提高性能。两者在索引策略和性能上存在显著差异,影响查询效率和资源使用。

卢卡斯·菲特尔:Postgres与SQL Server:B-Tree索引差异及去重的优势

Planet PostgreSQL Planet PostgreSQL · 2025-04-03T05:45:13Z
SQL中的索引类型:B-Tree、Hash、GiST、GIN和BRIN

在SQL数据库中,索引优化查询速度。PostgreSQL等关系数据库提供多种索引类型:B-Tree适合常规查询,Hash用于快速等值查询,GiST处理复杂数据,GIN适合多元素值,BRIN适合大表。选择合适的索引能显著提升查询性能。

SQL中的索引类型:B-Tree、Hash、GiST、GIN和BRIN

DEV Community DEV Community · 2025-03-03T00:35:06Z
SQL索引类型:B树、哈希、GIST、SPGIST、BRIN和GIN

数据库索引用于加速数据搜索,PostgreSQL支持多种索引类型:BTREE适合一般搜索,HASH用于精确匹配,GIST/SPGIST处理复杂数据,BRIN适合大数据集,GIN用于全文和数组搜索。选择索引类型需根据数据和查询需求。

SQL索引类型:B树、哈希、GIST、SPGIST、BRIN和GIN

DEV Community DEV Community · 2024-12-27T01:42:13Z
Pawsgresville的秘密:消失数据的案件。Postgres索引

在Pawsgresville,私家侦探B-Tree帮助猫咪客户Lайка解决LIKE查询失败的问题,建议使用GIN索引。教授介绍了GIN和GIST处理复杂数据的方法,而BRIN适合大数据。B-Tree强调索引顺序和VACUUM的重要性,以确保数据库高效运行。

Pawsgresville的秘密:消失数据的案件。Postgres索引

DEV Community DEV Community · 2024-12-23T11:46:29Z

本文介绍了GaussDB中的BTree和UBTree索引,分析了BlinkTree存储结构相较于传统B+树在高并发读写和写写场景中的优势,主要得益于其特殊结构和MVCC能力。BTree和UBTree通过优化加锁机制提升了并发性能,并具备独立的垃圾回收能力,但未来仍需优化索引空间占用。

解读GaussDB的BTree索引和UBTree索引,如何带来更强并发能力

华为云官方博客 华为云官方博客 · 2024-12-02T07:41:47Z
OrioleDB 公共Alpha版本

OrioleDB在Supabase平台发布了公共Alpha版本,作为Postgres默认Heap存储的替代品。该版本仅限于免费组织,不支持生产工作负载,索引仅支持默认B-Tree类型。建议测试者反馈,生产环境应使用标准选项。

OrioleDB 公共Alpha版本

Blog - Supabase Blog - Supabase · 2024-12-01T07:00:00Z
Brandur Leach:Postgres 17 B-tree批量扫描带来的实际性能提升

Postgres 17即将发布,带来B-tree索引优化,提升查询性能。测试显示API服务吞吐量提高30%,请求时间减少20%。这对复杂应用有显著影响,开发者可通过升级轻松提升性能。

Brandur Leach:Postgres 17 B-tree批量扫描带来的实际性能提升

Planet PostgreSQL Planet PostgreSQL · 2024-09-23T14:15:00Z
  • <<
  • <
  • 1 (current)
  • 2
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

完成下面两步后,将自动完成登录并继续当前操作。

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
友情链接: MOGE.AI 九胧科技 1tok 菜鸟教程 Remio.AI DeekSeek连连 53AI 神龙海外代理IP IPIPGO全球代理IP 东波哥的博客 匡优考试在线考试系统 开源服务指南 蓝莺IM Solo 独立开发者社区 AI酷站导航 极客Fun 我爱水煮鱼 周报生成器 He3.app 简单简历 白鲸出海 T沙龙 职友集 TechParty 蟒周刊 Best AI Music Generator 模力方舟 Gitee AI

小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码