SQLite简介

来自泡泡学习笔记
BrainBs讨论 | 贡献2024年10月11日 (五) 17:29的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

SQLite是一个进程内库,它实现了一个自包含的、无服务器的、零配置的事务性SQL数据库引擎。SQLite的代码属于公共领域,因此可以免费用于任何目的,无论是商业用途还是私人用途。SQLite是世界上部署最广泛的数据库,拥有数不清的应用程序,包括几个备受瞩目的项目。

SQLite是一个嵌入式SQL数据库引擎。与大多数其他SQL数据库不同,SQLite没有单独的服务器进程。SQLite直接读写普通磁盘文件。包含多个表、索引、触发器和视图的完整SQL数据库包含在单个磁盘文件中。数据库文件格式是跨平台的——您可以在32位和64位系统之间,或者在大端和小端体系结构之间自由地复制数据库。这些特性使SQLite成为应用程序文件格式的流行选择。SQLite数据库文件是美国国会图书馆推荐的存储格式。不要把SQLite看作是Oracle的替代品,而是fopen()的替代品。

SQLite是一个紧凑的库。启用所有特性后,库大小可以小于750KiB,具体取决于目标平台和编译器优化设置。(64位代码更大。而且一些编译器优化(如侵略性函数内联和循环展开)可能会导致目标代码变得更大。在内存使用和速度之间有一个权衡。通常SQLite运行得越快,你给它的内存越多。尽管如此,即使在低内存环境中,性能通常也相当不错。根据使用方式的不同,SQLite可以比直接的文件系统I/O更快。

SQLite在每次发布之前都经过非常仔细的测试,并以非常可靠而闻名。大多数SQLite源代码纯粹用于测试和验证。自动化的测试套件运行数百万个测试用例,涉及数亿个单独的SQL语句,并达到100%的分支测试覆盖率。SQLite优雅地响应内存分配失败和磁盘I/O错误。即使由于系统崩溃或电源故障而中断,事务也是ACID的。所有这些都是通过使用特殊的测试线束来模拟系统故障的自动化测试来验证的。当然,即使进行了所有这些测试,仍然存在bug。但与一些类似的项目(尤其是商业竞争对手)不同,SQLite对所有bug都是开放和诚实的,并提供bug列表和每分钟的代码更改年表。

SQLite代码库由一个全职从事SQLite开发的国际开发团队提供支持。开发人员继续扩展SQLite的功能,增强其可靠性和性能,同时保持与已发布的接口规范、SQL语法和数据库文件格式的向后兼容性。源代码对任何想要它的人都是绝对免费的,但也可以获得专业支持。

SQLite项目开始于2000-05-09。未来总是很难预测,但是开发者的意图是支持SQLite到2050年。设计决策是基于这一目标而做出的。


  • 全功能的SQL
  • 数十亿的部署
  • 单文件数据库
  • 公有领域源代码
  • 所有源代码在一个文件(sqlite3.c)
  • 占用空间小
  • 最大数据库大小:281 tb(248字节)
  • 最大行大小:1gb
  • 比直接文件I/O快
  • 航空级质量和测试
  • 零配置
  • ACID事务,即使在断电之后
  • 稳定、持久的文件格式
  • 广泛、详细的文档
  • 长期支持