我对数据库编程的经验非常有限,而且我访问数据库的应用程序都很简单 :)。直到现在 :(。我需要创建一个中型桌面应用程序(它被称为富客户端?),它将使用网络上的数据库在多个用户之间共享数据。我可能会使用 C# 和 MSSQL/MySQL/SQLite。
我进行了一些路测,发现在低质量的网络上,数据库访问并不那么顺畅。在一家公司的局域网中,网络上传输的数据很多,服务器负载恒定,因此,一个简单的 INSERT 或 SELECT SQL 查询需要 1-2 分钟,甚至会因超时/网络错误而失败,这种情况很常见。
有没有处理这种情况的最佳实践?当然,我可以将我的应用程序拆分为 GUI 线程和 DB 线程,这样网络问题就不会导致 GUI 冻结。但是如果出现大量网络错误该怎么办?过于频繁地向用户显示它们不是很好 :(。我正在考虑在运行我的应用程序的每台计算机上自动创建数据库的本地副本:首先更新本地数据库并在后台同步它,在网络错误时简单重试。这将允许应用程序在网络出现严重滞后/问题时正常运行。
有什么提示和流行语可以让我参考吗?也许是一些我不知道的最佳实践 :)
答案1
答案2
如果你有
数据库编程经验非常有限
这是一个
常见的情况是,一个简单的 INSERT 或 SELECT SQL 查询将需要 1-2 分钟,甚至因超时/网络错误而失败。
那么你的问题可能不是网络。在遇到网络问题之前,我会考虑在数据库工作、查询优化和编码实践方面获得更多经验。在我看来,破解一个相当完善的网络(几乎没有经验)要比破解一个可以访问数据库的工作程序容易得多。