在提出问题之前,让我首先描述一下我对SQLite的看法。
我碰巧喜欢小型,快速且更重要的是仅具有真正必要功能的工具。这就是为什么我喜欢SQLite而不喜欢MS-SQL的原因。
例如:MS-SQL可能具有更多的功能,可伸缩性等,但是如果您不走运,安装它也会很麻烦。当然,我并不是说安装困难是不选择特定数据库的原因。
不能误解我的意思:MS-SQL是优质产品。我对MS-SQL很有经验;我非常了解产品。我只是不太喜欢它,而在某些情况下并不需要它(=没有多少用户,<10-15)。
您实际上使用了多少数据库功能?以我的经验,它通常只是普通的SQL(SELECT,INSERT和UPDATE)。
我喜欢SQLite。快速着迷。“安装”非常容易。我认为SQLite可以做的比声明的要多。为什么只将其用于单进程/单个用户应用程序?毕竟:没有多少应用程序会不断访问数据库。
例如:考虑一个有15个用户的ERP应用程序。为什么不能使用SQLite?让我们面对现实吧:以我的专业经验,大多数时间,此类应用程序的用户访问数据库的时间将占他们使用该应用程序的总时间的5-10%。在另外90-95%的区域中,他们只是看着屏幕上的信息,以表格/表格形式输入数据,并且保存输入的时间不超过数据库时间的1秒。铁:1.5分钟的输入时间与1秒的保存时间。
如果SQLite数据库文件在“节省时间”期间被锁定,则需要访问数据库的其他用户只会等待,但他们不会注意到,因为等待时间会非常短(不明显)。在代码中,您只需要处理数据库可能的“繁忙”时间,以避免出现异常,但这并不难做到。
有些人必须像我一样思考,甚至为SQLite构建了一个客户端-服务器解决方案:SQLitening。这使我更加相信自己可能不会自欺欺人。
当然,有些数据库密集型应用程序不适合使用SQLite。但是,正如我现在考虑的那样,许多多用户应用程序(如果它们不超过15个用户)应该可以很好地使用SQLite。
我们的许多客户在硬件上的花费并不多,因此我经常遇到一台服务器,上面有所有东西(Exchange,SQL,客户端等),因此几乎“气喘吁吁”。如果我可以提供对系统要求不高的产品,那么我的客户将很高兴。SQLite不会增加任何权重(至少不会增加多少),MS-SQL会增加。因此,我不会选择SQLite,因为它是免费,便宜或易于安装的。我出于实际/技术原因会选择它。
仅供参考:根据我的专业,我们向客户销售产品(自定义和标准产品,主要是与ERP相关的产品),平均而言,使用该产品的客户不超过5-6人。有一些例外,但用户数不能超过10-15。
问题是:我是否认为可以将SQLite用于某些多用户应用程序(如我所描述的示例)正确吗?我应该知道什么技术上的缺点吗?您有哪些经验(负面或正面)可以帮助我做出正确的选择?
更新:请不要将此视为对其他数据库的负面判断。它们大多都是优质产品。只是在这里分享我的想法并对您对此的看法感兴趣。