我是靠谱客的博主 霸气黑猫,这篇文章主要介绍论数据引擎的核心设计思想(二)(原创),现在分享给大家,希望可以做个参考。

接上一章内容,本章通过对作品中相应代码的示例进行部分讲解,来让大家更清晰的认知如何一步步的编写数据存储引擎。

原创作品引用(存储引擎设计C语言版本)

https://gitee.com/to246564184/storage_engine__c_version?_from=gitee_search

首先,我们需要定义一些数据结构与数据类型,其将相对于数据引擎本身作为基础数据结构。

//记录ID

typedef unsigned long long ID;

//记录数据大小

typedef unsigned long long SIZE;

//记录索引

typedef unsigned long long INDEX;

//字符串

typedef char * STRING;

//堆内存

typedef void * COMMON_MEM;

//双向链表(整个数据存储引擎的核心数据结构)
typedef struct LINKED_LIST {
    struct LINKED_LIST * parent_point;     //父节点指针
    struct LINKED_LIST * child_head_point; //子链表中头节点的指针
    struct LINKED_LIST * last_point;       //上一条记录的指针
    struct LINKED_LIST * next_point;       //下一条记录的指针
    ID         id;                         //记录ID
    STRING     name;                       //记录KEY
    COMMON_MEM data;                       //记录数据
    SIZE       size;                       //记录数据大小
} LINKED_LIST , * LINKED_LIST_POINT;

上面是一些比较重要的引擎设计代码,是整个数据存储引擎的核心结构部分内容。

相信细心的读者可以从代码中读出短小精悍的味道,四个相同的结构体指针构建了数据引擎的存储网络,实现了树结构与星状拓扑,可以向上向下、向左向右互相连接的特性决定了它足够灵活。

ID字段对应着数据表的主键ID,可用于索引;name字段对应着数据表的KEY键,具备唯一索引特性,data对应数据表的Value内容,可以直接存储正式数据,size字段维护着data字段所占用的空间大小。短短的10多行代码,实现了复杂的数据库表结构。

在下一章,将重点讲述“页”的概念,请关注:论数据引擎的核心设计思想(三)(原创)

最后

以上就是霸气黑猫最近收集整理的关于论数据引擎的核心设计思想(二)(原创)的全部内容,更多相关论数据引擎内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(140)

评论列表共有 0 条评论

立即
投稿
返回
顶部