小巧、快速、可靠。
任选其三。
SQLite 作为应用程序文件格式
(注意:本页是对 SQLite 为什么是优秀应用程序文件格式的简要概述。此主题在 单独的技术说明 中进行了更详细的论述。)
SQLite 已成功用作桌面应用程序的磁盘文件格式,例如版本控制系统、财务分析工具、媒体编目和编辑套件、CAD 软件包、记录保存程序等等。传统的“文件/打开”操作调用 sqlite3_open() 以连接到数据库文件。更新会在应用程序内容被修改时自动发生,因此“文件/保存”菜单选项变得多余。可以使用 备份 API 实现“文件/另存为”菜单选项。
使用 SQLite 作为应用程序文件格式有很多优点,包括:
- 性能更好
- 读取和写入 SQLite 数据库通常比从磁盘读取和写入单个文件更快。参见 比文件系统快 35% 和 内部 BLOB 与外部 BLOB。
- 应用程序只需要加载它需要的数据,而不是读取整个文件并在内存中保存完整的解析结果。
- 小的编辑只覆盖文件更改的部分,减少写入时间和 SSD 驱动器的磨损。
- 降低应用程序成本和复杂性
- 无需编写和调试应用程序文件 I/O 代码。
- 可以使用简洁的 SQL 查询访问和更新内容,而不是使用冗长且容易出错的程序化例程。
- 可以通过添加新的表格和/或列来扩展未来的文件格式,保持向后兼容性。
- 应用程序可以利用 全文搜索 和 RTREE 索引,并使用触发器来实现 自动撤销/重做堆栈。
- 性能问题通常可以解决,即使在开发周期的后期,也可以使用 CREATE INDEX,避免昂贵的重新设计、重写和重新测试工作。
- 可移植性
- 应用程序文件可在所有操作系统、32 位和 64 位以及大端和小端架构之间移植。
- 程序联合体,也许所有程序都用不同的编程语言编写,可以访问同一个应用程序文件,没有任何兼容性问题。
- 多个进程可以连接到同一个应用程序文件,并且可以读取和写入,而不会互相干扰。
- 各种内容(否则可能会作为“文件堆”存储)被封装到单个磁盘文件中,以便通过 scp/ftp、U 盘和/或电子邮件附件更轻松地传输。
- 可靠性
- 内容可以连续且原子地更新,以便在电源故障或崩溃时几乎不会丢失任何工作。
- SQLite 中的错误比自定义编写的文件 I/O 代码中的错误少得多。
- SQL 查询比等效的程序化代码小得多,并且由于每行代码的错误数量大致相同,这意味着总体错误更少。
- 可访问性
- 可以使用多种第三方工具查看 SQLite 数据库内容。
- 存储在 SQLite 数据库中的内容更有可能在几十年后恢复,那时所有原始应用程序的痕迹都已消失。数据比代码更长寿。
- 美国国会图书馆 推荐 使用 SQLite 数据库文件作为长期保存数字内容的存储格式。
SQLite 允许数据库文件具有任何所需的扩展名,因此应用程序可以选择自定义扩展名供自己使用(如果需要)。application_id pragma 可用于在数据库文件中设置“应用程序 ID”整数,以便像 file(1) 这样的工具可以确定该文件与您的应用程序相关联,而不仅仅是一个通用的 SQL 数据库。
此页面最后修改于 2022-01-08 05:02:57 UTC