1

我想知道是否有办法将网络流视为文件。我可能错了,但我将文件视为字节数组列表。当你在 Windows 中打开一个文件并写入文件时,我相信你是在向该文件(数组列表)插入字节。

我正在创建一个程序,在其中使用 SQLite 数据库部署它。我还在创建连接到网络上该数据库文件的客户端版本。

为了让用户连接到数据库文件,他们需要提供凭据才能访问该数据库中的数据。我想让他们能够连接而无需输入该信息。

我一直在想的事情:

  • 改为使用 sql server 部署我的应用程序。(使用 SQL Server 部署应用程序并不容易,它会静默安装服务器、启用 tcp 连接以及实现此目的的所有必要配置。此外,安装 sqlite 只需不到 20 秒,大约需要 7 分钟!

  • 我正在使用 WCF 与服务器通信,因此我可以为我计划使用的所有查询创建一个函数。因此,如果我想从产品中选择 *,那么我可以在 WCF 服务上调用方法 SelectAllFromProducts() ......(在这里我有点重新发明轮子。)另外,这样做的好处是我的查询会很多我相信更快。Sqlite 是无服务器的,因此如果您计划在产品中查找产品名称类似于“foo”的所有项目,那么如果您考虑一下,计算机将不得不通过网络访问数据库中的所有记录。如果本地计算机这样做并将少数结果发送给客户端,它会更快。

4

1 回答 1

1

我认为通过网络使用 Sqlite 不是一个好主意。我目前正在使用 Sqlite,但作为本地文件系统数据库。

在客户端服务器架构中,最好使用一些 RDBMS 而不是 SQLite

客户端/服务器应用程序

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

请检查此链接以了解适用于 Sqlite并跳转到部分

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

于 2012-04-14T14:44:44.423 回答