Small. Fast. Reliable.
Choose any three.

SQLite的适当用途

由于SQLite试图解决其他问题,因此SQLite无法直接与诸如MySQL,Oracle,PostgreSQL或SQL Server之类的客户端/服务器SQL数据库引擎进行比较。

客户端/服务器SQL数据库引擎努力实现企业数据的共享存储库。他们强调可伸缩性,并发性,集中性和控制性。SQLite致力于为单个应用程序和设备提供本地数据存储。SQLite强调经济,效率,可靠性,独立性和简单性。

SQLite不与客户端/服务器数据库竞争。SQLite与fopen()竞争。

SQLite运作良好的情况

客户端/服务器RDBMS可能会更好地工作的情况

选择正确的数据库引擎的清单

  1. 数据是否通过网络与应用程序分开?→选择客户端/服务器

    关系数据库引擎充当减少带宽的数据过滤器。因此,最好将数据库引擎和数据保留在同一物理设备上,以使高带宽的引擎到磁盘的链接不必遍历网络,而仅需较低带宽的应用程序到引擎的链接。

    但是SQLite内置在应用程序中。因此,如果数据与应用程序位于不同的设备上,则要求更高带宽的引擎到磁盘的链接跨网络。这行得通,但不是最佳选择。因此,通常最好在数据与应用程序位于不同设备上时选择客户端/服务器数据库引擎。

    注意: 在此规则中,“应用程序”是指发出SQL语句的代码。如果“应用程序”是应用程序服务器,并且内容与应用程序服务器位于同一台物理计算机上,那么即使最终用户离另一个网络跳远,SQLite仍然可能适用。

  2. 并发作家很多?→选择客户端/服务器

    如果许多线程和/或进程需要同时写入数据库(它们无法排队并轮流使用),那么最好选择一个支持该功能的数据库引擎,这始终意味着客户机/服务器数据库引擎。

    SQLite每个数据库文件一次仅支持一个编写器。但是在大多数情况下,一次写事务只需要毫秒,因此多个写者可以简单地轮流执行。SQLite将处理许多人怀疑的更多写入并发。尽管如此,客户端/服务器数据库系统由于手头有一个运行时间较长的服务器进程来协调访问,因此通常可以比SQLite处理更多的写并发。

  3. 大数据?→选择客户端/服务器

    如果您的数据增长到您不舒服或无法放入单个磁盘文件的大小,则应选择SQLite以外的解决方案。假定您可以找到支持281 TB文件的磁盘驱动器和文件系统,SQLite支持的数据库最大为281 TB。即使这样,当内容的大小看起来可能会达到TB范围时,最好考虑使用集中式的客户端/服务器数据库。

  4. 否则→选择SQLite!

    对于编写者并发性较低且内容少于1 TB的设备本地存储,SQLite几乎总是一个更好的解决方案。SQLite快速可靠,无需配置或维护。它使事情变得简单。SQLite“行之有效”。