小巧、快速、可靠。
请选择其中的三个。
SQLite 的适用场景

SQLite 与客户端/服务器 SQL 数据库引擎(如 MySQL、Oracle、PostgreSQL 或 SQL Server)之间无法直接比较,因为 SQLite 试图解决的是一个不同的问题。

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

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

1. SQLite 适用的场景

2. 客户端/服务器关系型数据库管理系统更适用的场景

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

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

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

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

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

  2. 许多并发写入者? → 选择客户端/服务器

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

    SQLite 每个数据库文件一次只支持一个写入者。但在大多数情况下,写入事务只需要几毫秒,因此多个写入者只需轮流写入即可。SQLite 处理的写入并发量比许多人想象的要多。尽管如此,客户端/服务器数据库系统由于拥有一个正在运行的服务器进程来协调访问,因此通常比 SQLite 处理更多的写入并发量。

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

    如果您的数据将增长到您无法容忍或无法容纳在一个磁盘文件中的大小,那么您应该选择除 SQLite 之外的解决方案。SQLite 支持高达 281 TB 的数据库,假设您可以找到支持 281 TB 文件的磁盘驱动器和文件系统。即使如此,当内容的大小看起来可能超过 TB 范围时,最好考虑一个集中式的客户端/服务器数据库。

  4. 否则 → 选择 SQLite!

    对于具有低写入并发量且内容少于 1 TB 的设备本地存储,SQLite 几乎总是更好的解决方案。SQLite 快速可靠,不需要配置或维护。它使事情变得简单。SQLite “开箱即用”。

此页面最后修改于 2024-04-03 17:48:26 UTC