Benefits of SQLite As A File Format
(注意:当前页面是SQLite为什么要创建一个好的应用程序文件格式的简要总结,在 单独的技术说明中将更详细地讨论该主题。)
SQLite作为桌面应用程序(如版本控制系统,财务分析工具,媒体编目和编辑套件,CAD软件包,记录保存程序等)的磁盘文件格式已经取得了巨大的成功。传统的File / Open操作调用sqlite3_open()以附加到数据库文件。更新应用程序内容时会自动更新,因此文件/保存菜单选项变得多余。File / Save_As菜单选项可以使用备份API来实现。
使用SQLite作为应用程序文件格式有很多优点,其中包括:
- 更好的性能
- 从SQLite数据库读取和写入通常比从磁盘读取和写入单个文件要快。比文件系统和内部对外部BLOB快35%。
- 应用程序只需加载它所需的数据,而不是读取整个文件并在内存中保存完整的分析。
- 小的编辑仅覆盖文件中发生变化的部分,减少写入时间和SSD驱动器的磨损。
- 降低应用成本和复杂性
- 没有应用程序文件I / O代码来编写和调试。
- 可以使用简洁的SQL查询来访问和更新内容,而不是冗长且容易出错的过程例程。
- 只需添加新的表格和/或列,即可在将来的版本中扩展文件格式,从而保持向后兼容性。
- 应用程序可以利用全文搜索和RTREE索引,并使用触发器来实现自动撤销/重做堆栈。
- 性能问题通常可以通过使用CREATE INDEX来解决,甚至在开发周期的后期,避免代价高昂的重新设计,重写和重新测试工作。
- 可移植性
- 应用程序文件可在所有操作系统,32位和64位以及大小端架构中移植。
- 程序联合可能全部用不同的编程语言编写,可以访问相同的应用程序文件,而不存在兼容性问题。
- 多个进程可以附加到相同的应用程序文件,并且可以读写,而不会相互干扰。
- 不同的内容可能会被存储为一堆“文件”,通过scp / ftp,U盘和/或电子邮件附件将其封装到一个单独的磁盘文件中,以实现更简单的传输。
- 可靠性
- 内容可以不断更新并自动更新,以便在停电或崩溃时很少或没有工作丢失。
- SQLite中的错误远不及定制写入的文件I / O代码。
- SQL查询比等效的程序代码小很多倍,并且由于每行代码中的错误数量大致不变,这意味着整体上的错误更少。
- 无障碍
- SQLite数据库内容可以使用各种第三方工具查看。
- 存储在SQLite数据库中的内容很可能在将来几十年内恢复,在原始应用程序的所有痕迹都丢失之后很久。数据寿命比代码长。
SQLite允许数据库文件具有任何所需的文件扩展名,所以如果需要,应用程序可以选择自定义的文件扩展名以供自己使用。application_id编译指示可用于在数据库文件中设置一个“应用程序ID”整数,这样像文件(1)这样的工具就可以确定该文件与您的应用程序相关联,而不仅仅是一个通用的SQL数据库。
SQLite在公共领域。
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com