我的數據庫編程經驗非常有限,訪問數據庫的應用程序是簡單的:)。到現在爲止:(我需要創建一箇中等規模的桌面應用程序(它被稱爲富客戶端?),它將使用網絡上的數據庫在多個用戶之間共享數據,很可能我會使用C#和MSSQL/MySQL/SQLite。豐富的數據庫前端 - 如何正確處理低質量的網絡?
我已經進行了一些驅動器測試,發現在低質量網絡上數據庫訪問並不那麼順暢。在一家公司的局域網中,通過網絡傳輸大量數據並且服務器處於持續負載狀態,所以這是一種常見情況一個簡單的INSERT或SELECT SQL查詢將花費1-2分鐘,甚至會因超時/網絡錯誤而失敗
這是處理這種情況的最佳實踐嗎?當然,我可以將我的應用程序分成GUI線程和數據庫線程網絡問題不會導致凍結的GUI,但是如何處理大量的n網絡錯誤?向用戶顯示它們往往不會很好:(我正在考慮在應用程序運行的每臺計算機上自動創建數據庫的本地副本:首先更新本地數據庫並在後臺同步它,然後簡單地重試網絡錯誤。這將能夠保證在網絡具有很大的滯後/問題的應用程序的功能活動。
任何提示和行話我能看看嗎?也許它的一些最佳做法,已經可以說我不知道:)
對於網絡設計糟糕,組裝錯誤,無法維護的中小型公司來說,這種情況屬於正常情況。當然,MySQL服務器比SQLite更具網絡容忍度,但2-3秒的ping和windows共享由於滯後而無法打開,可以終止應用程序和數據庫之間的任何網絡對話:) – grigoryvp