我公司对我们客户的每台移动计算机上的软件都有一个本地MySQL数据库。这些移动电脑通过移动宽带卡连接到互联网。我们将要读取的信息发送到一个字符串中,并通过范围从1kb到600kb的XML文件存储在客户的本地数据库中。 (注意:我们这样做是为了让客户在互联网连接不可用时仍可访问数据。)数据库同步问题
1-600kb XML文件存储在我们服务器上每个用户的文件夹中,直到它们通过.net/C#webservice将文件提供给使用其令牌调用Web服务的客户端。第一次连接时,客户可能有多达20-40MB的这些小XML文件。在正常的日子里,他们可以下载最多几MB的这些文件。客户移动数据终端上的软件每10秒钟用一个web服务检查服务器上文件夹中的文件。
每15分钟创建一个新的XML文件,其中需要对用户的数据库进行更改,如果没有更改,则不会创建XML文件。最大的XML文件(600kb)拥有用户本地数据库的1000条记录。每个记录有10个以上的列,其中有10个以上的字符。
与我们的方法的问题是:
这种方法是缓慢的。 (可能需要1.5小时才能同步一个空数据库。)
XML文件没有压缩,所以下载大小比所需的大。
XML文件比它们需要的大,因为它们包含不必要的信息。
我们没有跟踪用户数据库中的内容,因此用户可能会失去同步。
它是基于文件的,这会导致硬盘上的大量读/写操作。
任何人都可以提出一个更好的方法来做到这一点?