首页 > 数据库 >SQLite架构与关键函数

SQLite架构与关键函数

时间:2024-09-26 11:24:45浏览次数:6  
标签:SQLite 架构 函数 Tree 存储 索引 数据 Page

 Sqlite 架构解析 - 知乎 (zhihu.com)

SQLite是一种轻量级的嵌入式数据库系统,被广泛应用于各种移动设备和桌面应用程序中。下面学习SQLite数据库的存储机制,并介绍其相对于其他数据库系统的优势。通过深入了解SQLite的存储机制,我们可以更好地理解它在实际应用中的表现和优势。

SQLite数据库的存储机制

文件存储结构:

SQLite数据库以单个文件的形式存储,这个文件包含了所有的表、索引、触发器等数据库对象。这种文件存储结构使得SQLite非常适合嵌入式设备和桌面应用程序,因为它不需要独立的服务器进程和额外的配置。

数据页:

SQLite将数据分成固定大小的数据页(通常为4KB(4096)),每个数据页中包含了多个数据行。这种数据页的存储方式使得SQLite能够高效地处理大规模数据集,同时还能够减少磁盘IO的次数,提高数据库性能。

B树索引:

B+树用于存储表,B树用于存储索引。SQLite使用B树索引来加速数据的检索。B树索引以平衡树的形式存储索引数据,可以快速定位到特定的数据行。SQLite支持多种类型的索引,包括普通索引、唯一索引和全文索引等。

SQLite 使用 B-Tree 存储索引,一个 B-Tree 对应一个索引;使用 B+Tree 存储表,一个 B+Tree 对应一个表。Tree
创建时就会为其分配一个根 Page(对应一个 Page Number),Page 标识了该 Tree,Tree 的根 Page 在 其生命周期内不会发生变更。

 

数据编码:

SQLite使用变长整数编码、浮点数编码和字符串编码等方式来存储数据。这种数据编码方式既节省了存储空间,又提高了数据访问的效率。

标签:SQLite,架构,函数,Tree,存储,索引,数据,Page
From: https://www.cnblogs.com/suntroop/p/18433111

相关文章

  • Mysql 常用方法和函数(查询)
    查询所有记录SELECT*FROMsys_user;加别名SELECTsys_user_id用户主键,sys_user_name登录名,sys_user_password密码,sys_user_phone手机号,sys_user_email邮箱,sys_user_card身份证号,sys_user_address地址FROMsys_user;查询用户主键为2的数据SELECT*F......
  • python函数基础以及函数参数简解
    python中函数分为函数、内置函数Python所有的内置函数自定义函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。调用函数,使用函数名+()1def关键字+函数名():2函数体3return可以终止函数,默认返......
  • Mysql-字符串函数
    UUIDselectmd5(uuid())截取LEFT(str,len)返回字符串str的最左面len个字符。RIGHT(str,len)返回字符串str的最右面len个字符。SUBSTRINGSUBSTR(name,3,5)SUBSTR(name,3)SUBSTRING(strFROMpos)SUBSTRING_INDEX(str,delim,count)返回从字符串str的第count个出现......
  • 经典sql题(十四)炸裂函数的恢复
    下面是一个关于SELECT语句的例子,该示例展示了如何使用CONCAT_WS和COLLECT_LIST函数来处理炸裂之后学生成绩的数据。假设我们有一个名为test的表,结构如下:表结构teststudent_idstudent_nameclassscore1AliceClass1901AliceClass1851AliceClass1802BobClass2752BobC......
  • getopt函数的使用
    getopt函数intgetopt(intargc,char*constargv[],constchar*optstring);头文件:#include<unistd.h>参数:argc:命令行参数的数量**argv*8:一个字符串数组,包含所有命令行参数**optstring*8:一个字符串,定义了合法的选项字符(例如:"abc:"表示-a,-b,和-c需......
  • matlab实验三(冒泡排序,sort函数,斜抛运动与绘图,循环确定(银行存利息))
    1.在MATLAB中使用循环结构对给定的数列A=[33,689,-705,2024,-6,29]进行升序排序。(注意:不可以使用任何MATLAB自带的排序函数直接操作。)%给定数列A=[33,689,-705,2024,-6,29];%获取数列长度n=length(A);%冒泡排序算法fori=1:n-1forj=1:n-i......
  • Spring Boot 三层架构结合 Redis 和 ELK 实现高效应用开发
    目录一、技术选型二、项目结构三、SpringBoot三层架构实现四、配置Redis五、配置ELK六、代码解析在企业级应用开发中,良好的架构设计和强大的技术栈能够提高开发效率、增强系统性能和可维护性。本文将介绍如何使用SpringBoot构建三层架构,并结合Redis和ELK(Ela......
  • 面试真题 | 小红书-C++引擎架构
    文章目录1.自我介绍2.项目3.c++多态,如何实现的,虚表、虚表指针存储位置C++多态的实现机制虚表指针的存储位置面试官的深度追问4.explicit关键字explicit关键字的回答面试官可能的追问5.unique_ptr、shared_ptr、weak_ptr的原理,有没有线程安全问题,weak_ptr的解决......
  • 20 函数去上级查找 案例
    去上级查找-案例1size=19func_list=[lambda:1+size,lambda:2+size,lambda:3+size]#此时函数体中没有size,会去上层或者全局变量里面查找,然后将2+size的值进行返回ret=func_list[0]()#func_list[0]内部不可见,只有加()才会执行1func_list[1]()#2......
  • 06 函数返回值
    6、函数返回值P93deffunc(arg):#....return9#返回值为9默认:returnNoneval=func('adsfadsf')#1.让用户输入一段字符串,计算字符串中有多少A字符的个数。有多少个就在文件a.txt中写多少个“李邵奇”。defget_char_count(data):sum_counter=0......