我想設計一個通過非常慢的網絡鏈接訪問的數據庫。幸運的是,數據庫本身非常靜態。所以我要用積極的緩存結果。有時,在客戶端運行時,其他插入和更新可能發生在表上,所以我想設計一個低帶寬系統,客戶端知道什麼時候更新了某些東西,以避免檢查遠程數據庫。如何設計緩存友好的數據庫表?
我的想法是創建一個包含兩列的特殊表格,一個是表格的名稱,另一個是版本號。該表不會被應用程序查詢直接修改。它將用存儲過程進行更新。每當任何表被修改時,存儲過程應該增加這個特殊表的數量。
客戶端然後可以將查詢的結果與表的版本號一起存儲在本地數據庫(如sqlite)中。然後,下一次在特殊表上運行選擇並檢查表是否已更改。
聽起來如何?是否有其他策略來最小化冗餘數據庫帶寬並積極緩存數據庫?事情不僅是跨平臺的,而且編程語言中的不同客戶端將訪問它(C,C++,Obj-C,Python等),所以我試圖找到最簡單的東西在所有情況下工作。
理想情況下,我想設計表爲增量(刪除是實際的插入),所以我可以只查詢表的最高ID並與本地進行比較。但是,我不知道在哪裏尋找這方面的例子。閱讀CouchDB's technical page讓我的頭部爆炸。
我認爲,如果你配料很多更新的時間戳只會工作。或者,當你爲了時間戳而絆倒時,你可能已經完成了! – Will 2009-09-14 15:23:52