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