9

我从另一个问题中得到了这个。

在 sqlite 的适当用途下,它具有:

SQLite 运行良好的情况

•网站

SQLite 通常可以很好地作为中低流量网站(也就是说,所有网站的 99.9%)的数据库引擎。当然,SQLite 可以处理的网络流量取决于网站使用其数据库的程度。一般来说,任何每天点击量少于 100K 的网站都可以使用 SQLite。10 万次点击/天的数字是保守估计,而不是硬性上限。SQLite 已被证明可以处理 10 倍的流量。

另一个 RDBMS 可能工作得更好的情况

•客户端/服务器应用程序

如果您有许多客户端程序通过网络访问公共数据库,则应考虑使用客户端/服务器数据库引擎而不是 SQLite。SQLite 将在网络文件系统上工作,但由于与大多数网络文件系统相关的延迟,性能不会很好。此外,许多网络文件系统实现的文件锁定逻辑包含错误(在 Unix 和 Windows 上)。如果文件锁定不能正常工作,则两个或多个客户端程序可能同时修改同一数据库的同一部分,从而导致数据库损坏。因为这个问题是由底层文件系统实现中的错误引起的,所以 SQLite 无法阻止它。

一个好的经验法则是,在通过网络文件系统从多台计算机同时访问同一个数据库的情况下,您应该避免使用 SQLite。


我的问题:

我将在这里展示我的无知,但这两者有什么区别?

4

5 回答 5

22

“Web 应用程序”是一种通常使用浏览器作为客户端的应用程序。Web 应用程序是客户端/服务器应用程序。换句话说,您可以将客户端/服务器应用程序视为超类,其中 Web 应用程序是子类。

于 2009-04-03T18:37:01.937 回答
9

“web”应用程序意味着浏览器是客户端

客户端/服务器应用程序意味着自定义客户端应用程序。想想 Outlook 连接到交换,虽然它可能使用网络连接,但它是交换服务器的自己的客户端。

编辑:

更具体到您发布的 sqlite 文本,它们的意思是客户端应用程序不应该直接访问您的 sqllite DB,而应该使用某种服务器端接口(即 json Web 服务)

但在我看来,这条经验法则适用于所有数据库引擎。如果我使用 SQL Server 或 Oracle,我绝对会避免让客户端应用程序直接连接到数据库,这有很多潜在的问题,首先是安全性。

于 2009-04-03T18:19:06.550 回答
7

有几点需要注意的区别:

Web 应用程序假定客户端是 Web 浏览器,并且客户端和服务器之间的通信是无状态的 (HTTP)。它还倾向于假设客户端“瘦”并且在浏览器中完成的信息处理很少。

客户端-服务器应用程序假定客户端是“厚”客户端,并且客户端和服务器之间的通信保持状态(这不一定是真的)。通信几乎可以是任何协议。老式的客户端-服务器或 2 层应用程序确实让每个客户端都直接连接到数据库——出于各种原因,我建议不要这样做,第一是安全性。这可能是您在说 SQLite 不合适时发布的来源的意思。

3+ 层类型的应用程序仍然可以进行有状态的客户端-服务器通信,但中间层将处理实际的数据库通信。在这种情况下,网络上的延迟并不重要,SQLite 可以工作(因为它更像是一个 Web 应用程序)。

于 2009-04-03T18:37:54.727 回答
1

区别 b/n 客户端/服务器应用程序和 Web 应用程序服务器

1)客户端服务器应用程序遵循两层架构,但网络服务器应用程序遵循三层或“n”层架构。

2)在客户端服务器应用程序中,我们不会使用 Web 服务器,但在 Web 服务器应用程序中将使用相同的。

3)客户端服务器应用程序主要用于Intranet领域,但Web服务器应用程序用于Internet领域。

4)客户端服务器中的安全问题非常少,因为有最少的用户,但在 Web 服务器中,安全问题是最大的,因为最终用户更多。

5)客户端服务器不考虑性能问题,但会考虑Web服务器应用程序。

于 2013-05-26T08:20:32.533 回答
0
  1. Web 应用程序在浏览器上运行,客户端-服务器应用程序作为 .exe 运行。
  2. Web 应用程序在服务器上运行,客户端-服务器应用程序在客户端运行。
  3. Web 应用程序是瘦客户端,客户端-服务器应用程序是胖客户端。
  4. Web 应用程序不需要安装在客户端系统中,客户端-服务器应用程序需要安装在客户端系统中 5.Web 应用程序需要低维护,客户端-服务器应用程序需要高维护

http://webvsclientserverbysujan.blogspot.in/2014/01/WebVsDesktoApppbysujan.blogspot.com.html

于 2014-01-30T08:43:40.950 回答