IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> SQLite学习之路(2021SC@SDUSC) -> 正文阅读

[大数据]SQLite学习之路(2021SC@SDUSC)

SQLite学习之路(2021SC@SDUSC)

思想准备

这是我第一篇博客,同时也是我第一次“解剖”轻型库——SQLite。其实以前听闻SQLite,但一直以来都使用的是MySQL。因此在分析SQLite背后代码的实现过程中,也是学习一门新技术的过程。我相信,这条路一定是苦尽甘来的…

SQLite介绍

SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至2021年已经接近有21个年头,SQLite也迎来了一个版本 SQLite 3已经发布。

结构分析

在这里插入图片描述

初步了解,SQLite分为以下几个部分:界面、分词器、解析器、代码生成器、字节码引擎、B树、缓存页面、操作系统接口。它又可以大致可以分为一下几个部分:前段, 中层VM, 后端。"前端"主要做的是语法分析, "后端"主要实现了数据库性质(ACID, 增删查改)。后端分为了tree, pager, os三层。

主要任务

我主要负责解析Pager模块的代码(初步暂定)。

Pager(页面缓存):前端解析完SQL命令后,需要对数据库进行操作时,会通过B-Tree模块查找需要的页面,B-Tree维护着磁盘各页面之间的复杂关系,B-Tree不会直接读写磁盘,它会通过调用pager模块来获取所需的页面或修改页面,pager模块的作用可以说是B-Tree和磁盘读写的中间代理。

B-tree 模块以固定大小的页面从磁盘请求信息。默认的page_size是 4096 字节,但可以是 512 到 65536 字节之间的任何 2 的幂。页面缓存负责读取、写入和缓存这些页面。页面缓存还提供回滚和原子提交抽象,并负责锁定数据库文件。B-tree 驱动程序从页面缓存中请求特定页面,并在它想要修改页面或提交或回滚更改时通知页面缓存。页面缓存处理所有杂乱的细节,以确保快速、安全和高效地处理请求。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 16:56:57  更:2021-10-01 16:59:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:33:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码