MiniSQL数据库引擎

基于C++的轻量级SQL引擎

2024.04 - 2024.06 团队队长 C++开发

项目概述

MiniSQL是一个基于C++开发的轻量级SQL引擎,支持完整的增删改查功能与B+树索引优化。项目专注于查询性能优化,负责核心模块开发,实现了高效的磁盘存储和内存管理系统。

系统架构

SQL解析层

词法分析、语法分析,支持标准SQL语句

查询优化器

基于B+树索引的查询路径优化

存储引擎

磁盘级B+树存储容器,支持动态分裂合并

缓冲管理

内存缓冲层,页表映射与Pin机制

事务管理

ACID特性保证,并发控制

索引系统

B+树索引,支持范围查询和点查询

核心技术实现

磁盘级B+树存储

设计磁盘级B+树存储容器,支持节点动态分裂/合并,通过多级索引优化查询复杂度,并通过局部调整策略减少索引更新时节点操作频次,提升索引更新性能。

内存缓冲层

构建内存缓冲层衔接磁盘与上层模块,通过页表映射与Pin机制实现数据页的高效加载、缓存及生命周期管理。

LRU缓存策略

基于双向链表实现LRU策略,引入延迟删除机制优化高频操作,提高热点数据保留效率与系统吞吐量。

查询优化

实现基于代价的查询优化器,支持索引选择、连接顺序优化,显著提升复杂查询性能。

事务处理

实现ACID特性,支持并发控制和故障恢复,保证数据一致性和系统可靠性。

SQL功能

完整支持CREATE、INSERT、SELECT、UPDATE、DELETE等SQL语句,兼容标准SQL语法。

技术细节

B+树索引设计

  • 支持动态节点分裂与合并
  • 多级索引结构优化查询路径
  • 局部调整策略减少节点操作
  • 范围查询和点查询优化

缓冲池管理

  • 页表映射机制
  • Pin/Unpin引用计数
  • LRU替换算法
  • 延迟写回策略

存储管理

  • 页式存储结构
  • 空闲页面管理
  • 数据页压缩
  • 磁盘I/O优化

技术栈

C++ B+树 LRU算法 SQL解析 缓冲池 页式存储 事务处理 并发控制

项目成果

100%
SQL功能覆盖
80%
查询性能提升
1000+
并发事务支持
GB级
数据处理能力