我正在开发一个Adobe AIR应用程序,它使用SQLite数据库在本地存储数据。
任何时候,我都希望最终用户将其本地数据同步到中央MySQL数据库。
你有什么建议吗?
性能和稳定性是关键(除了安全性;)

最佳答案

我可以想出两种方法:
定期转储MySQL数据库,并从转储创建一个新的SQLite数据库。然后,可以为用户客户端提供SQLite数据库(SQLite数据库包含在单个文件中)以下载和替换当前数据库。
创建一个diff脚本,该脚本生成必要的语句以加快当前数据库的速度(各种INSERT、UPDATE和DELETE语句)。为此,必须在数据库中连续记录每次更改的时间(每行的创建和更新时间,并保留已删除行的历史记录)。
用户的客户端将下载diff文件(各种语句的文本文件)并将其应用于本地数据库。
这两种方法各有利弊——通过转储整个数据库,可以确保所有数据都能通过。它也比创建diff简单得多,但是它可能会给服务器增加更多的负载,这取决于数据库在转储之间更新的频率。
另一方面,数据库之间的差异只会提供更改的数据(希望如此),但它更容易出现逻辑错误。它还将在客户机上产生额外的开销,因为它将不得不创建/更新所有必要的记录,而不仅仅是复制文件。

09-04 05:26
查看更多