我们的客户端软件目前正在向我们的 SQL Server 数据库发送大量 xml,以 NTEXT 形式存储,数据库变得越来越大,性能也越来越差。此 xml 不需要索引,只需要以某种方式持久保存到磁盘。有没有一种简单、可靠的方法可以将这些东西存储到远程服务器的磁盘上?我研究过 CouchDB,但我确信有一种更简单的方法可以做到这一点。我更喜欢 unix 解决方案,但任何事情都有可能。
谢谢!
答案1
我会用同步并将其存储为平面文件;如果您不需要索引,则不需要数据库。这样,当您需要向现有内容添加更多数据时,您不必再次发送整个文件。
如果远程服务器正在运行 SSH,它应该很简单rsync -avz source/dir/ remote:/path/to/dest/dir
;手册页可以告诉您更多信息(请小心使用结束斜杠,如果您愿意,如果我能提供更具体的细节,我可以为您提供更多帮助)。
答案2
由于不需要使用 SQL 功能(如 Microsoft SQL Server 中的 XML 类型),我建议将文件直接存储到硬盘上。
根据上下文,您可以创建具有只写访问权限的共享目录(在 Windows XP 中是可行的,因此在 Unix 解决方案中可能也是可行的)。
或者如果客户端软件在本地网络之外使用,您可以通过 Web 服务接收 XML 数据并将其存储到硬盘。或者如果性能是主要考虑因素,您可以直接使用 HTTP 协议(POST/PUT),而不是使用 Web 服务。