2010-03-09 81 views
2

我正在开发一个从远程MySQL服务器检索数据的iPhone应用程序。由于数据库非常庞大,我不希望每次运行应用程序时都要下载数据,而只是希望只下载一次数据,然后与SQLite数据库同步。(无需一次又一次地下载)如何在服务器上同步MySQL服务器数据库和SQLite数据库?

如果有是远程MySQL服务器上的更新,然后只下载更新的数据。

如果在远程MySQL服务器上有插入操作,那么我可以通过比较主键值从最后插入的数据库表ID中识别出来。但是如何检查删除和更新操作以获得最佳效率,因此我只需要下载作为删除或更新操作的结果的最小数据?

任何帮助和建议,将不胜感激。

谢谢,
吉姆。

+0

吉姆,你能告诉我如何在iPhone的Sqlite数据库上同步MySql服务器数据库。 – Nitin 2011-12-27 12:36:18

回答

3

首先,我会说,而不是做一个大的首次下载,为什么不把你的应用程序与数据库的副本,而不是?然后,所有你必须担心的是增量更新。

如果数据库没有经常修改,我认为最简单的方法是利用查询日志。打开MySQL DB上的查询日志记录,以便将所有操作记录到文件中。然后,当iPhone请求更新的数据时,您可以简单地解析日志文件并准备描述插入,更新和删除的响应。

如果数据库正在被许多用户实时修改,这不是一个好主意,因为查询日志会很大。在这种情况下,您可以使用数据库中的createdOn/modifiedOn时间戳来了解哪些插入和更新是iPhone响应的候选项。但是,对于删除操作,您可以将每行标记为“未真正删除”,直到iPhone应用程序知道为止,或者您可以创建一个名为“已删除数据”的表并将其移入该表,而不是将其明确删除。

+0

谢谢。这正是我期待的。在我的情况下,日志文件肯定会用于获取更新。 再次感谢。 – Jim 2010-03-10 06:28:53

相关问题