选择正确的数据库引擎的清单
数据是否通过网络与应用程序分开?→选择客户端/服务器
关系数据库引擎充当减少带宽的数据过滤器。因此,最好将数据库引擎和数据保留在同一物理设备上,以使高带宽的引擎到磁盘的链接不必遍历网络,而仅需较低带宽的应用程序到引擎的链接。
但是SQLite内置在应用程序中。因此,如果数据与应用程序位于不同的设备上,则要求更高带宽的引擎到磁盘的链接跨网络。这行得通,但不是最佳选择。因此,当数据与应用程序位于单独的设备上时,通常最好选择客户端/服务器数据库引擎。
注意: 在此规则中,“应用程序”表示发出SQL语句的代码。如果“应用程序”是应用程序服务器,并且内容与应用程序服务器位于同一台物理计算机上,那么即使最终用户与另一个网络之间的距离也是如此,SQLite仍然可能适用。
并发作家很多?→选择客户端/服务器
如果许多线程和/或进程需要同时写入数据库(它们无法排队并轮流使用),那么最好选择一个支持该功能的数据库引擎,这始终意味着客户机/服务器数据库引擎。
SQLite每个数据库文件一次仅支持一个编写器。但是在大多数情况下,一次写事务只需要毫秒,因此多个写者可以简单地轮流执行。SQLite将处理许多人怀疑的更多写入并发。尽管如此,客户端/服务器数据库系统由于手头有一个运行时间较长的服务器进程来协调访问,因此通常可以比SQLite处理更多的写并发。
大数据?→选择客户端/服务器
如果您的数据将增长到您不舒服或无法放入单个磁盘文件的大小,则应选择SQLite以外的解决方案。假设您可以找到支持281 TB文件的磁盘驱动器和文件系统,SQLite支持的数据库最大为281 TB。即使这样,当内容的大小看起来可能会达到TB级时,最好考虑使用集中式的客户端/服务器数据库。
否则→选择SQLite!
对于写程序并发性较低且内容少于TB的设备本地存储,SQLite几乎总是一个更好的解决方案。SQLite快速可靠,不需要任何配置或维护。它使事情变得简单。SQLite“行之有效”。