H2 数据库底层原理
文章平均质量分 78
体系化的阅读和分析 H2 架构设计和实现。
理解数据库底层原理和性能优化技巧。
insight coder
刨根问底,原来是这样
展开
-
Insight h2database 更新、读写锁以及事务原理
文章基于 RegularTable 来分析和拆解更新操作。锁模型比较简单,方便了解更新的整个流程。并发读写的实现在 MVStore 存储引擎中分析。主要关注数据更新的实现、事务的提交和回滚。原创 2023-10-12 00:11:17 · 452 阅读 · 0 评论 -
Insight h2database auto increment 实现原理
H2 database 是java 编写的数据库,简单易懂,对于数据库实现原理是个很好参考。通过阅读数据库的实现,对于应用开发帮助很大,可以适当的扬长避短。对于SQL 规范,每种数据库都有对应的实现方式,dalect。原创 2023-10-12 00:08:08 · 313 阅读 · 0 评论 -
Insight H2 database 数据查询核心原理
本文目标是:了解查询的核心原理,对比 SQL 查询优化技巧在 h2database 中的落地实现。前提:为了贴近实际实际,本文 Code Insight 基于 BTree 存储引擎。原创 2023-10-12 00:05:35 · 262 阅读 · 0 评论 -
Insight h2database SQL like 查询
SQL like 模式匹配支持正则表达式和通配符两种。常用的通配符模式采用约定的字符串匹配规则确定每一行数据是否符合要求。正则模式匹配不支持优化,需要遍历目标表的每一行,性能损耗大。使用前缀匹配的通配符模式匹配,尝试增加索引列的区间范围条件,优化扫描区间。熟悉条件筛选的底层原理,趋利避害,达到数据查询的最佳性能。原创 2023-10-12 00:04:21 · 503 阅读 · 0 评论 -
Insight h2database 执行计划评估以及 Selectivity
生成执行计划是任何一个数据库不可缺少的过程。通过本文看执行计划生成原理。最优的执行计划就是寻找最小计算成本的过程。本文侧重 BTree 索引的成本计算的实现 以及 基础概念选择度的分析。原创 2023-10-12 00:02:34 · 178 阅读 · 0 评论 -
h2database BTree 设计实现与查询优化思考
查询优化实质上就是访问数据量的优化,磁盘IO 的优化。如果数据全部缓存到内存中,实际上就是计算量的优化,CPU 使用的优化。索引是有序的,实际上就是指块文件内的 offsets 是以数组形式体现的。特殊的是,在h2database 中,offsets数组元素也是有序的(例如:[4090, 4084, 4078, 4072, 4066, 4060, 4054, 4048, 4042]),应该是方便磁盘顺序读,防止磁盘碎片化。原创 2023-10-12 00:00:38 · 200 阅读 · 0 评论