【发布时间】:2011-10-21 06:36:17
【问题描述】:
我公司在我们客户的每台移动计算机上安装的软件都有一个本地 MySQL 数据库。这些移动计算机通过移动宽带卡连接到互联网。我们将信息发送到一个字符串中,并通过 1kb 到 600kb 的 XML 文件存储在客户的本地数据库中。 (注意:我们这样做是为了在互联网连接不可用时客户仍然可以访问数据。)
1-600kb 的 XML 文件存储在我们服务器上每个用户的文件夹中,直到它们通过 .net/C# 网络服务下载,该网络服务将文件提供给客户端,客户端使用其令牌调用网络服务。客户第一次连接时可能拥有多达 20-40mb 的这些小 XML 文件。在正常情况下,他们可能会下载多达几 MB 的这些文件。客户移动计算机上的软件每 10 秒通过网络服务检查服务器上文件夹中的文件。
每 15 分钟创建一个新的 XML 文件,其中包含需要对用户数据库进行的更改,如果未进行任何更改,则不会创建 XML 文件。最大的 XML 文件 (600kb) 有 1000 条用户本地数据库的记录。每条记录有 10 多列,有些列有 10 多个字符。
我们方法的问题:
这种方法很慢。 (同步一个空数据库可能需要 1 1/2 小时。)
没有对 XML 文件进行压缩,因此下载大小超出了需要。
XML 文件比实际需要的大,因为它们包含不必要的信息。
我们不会跟踪用户数据库中的内容,因此用户可能会变得不同步。
它是基于文件的,这会导致硬盘上的大量读取/写入。
谁能提出一个更好的方法来做到这一点?
【问题讨论】: