我正在研究使用MySQL數據庫作爲數據存儲層的Java應用程序。數據庫中的配置表很少,但每個表都有數千個記錄/行。當應用程序啓動時,這些所有配置都將緩存/加載到相應的數據結構/ bean(JAVA POJO's)的內存中。MySQL檢查表是否有一些記錄已更改
一切都很好,除了每次應用程序啓動緩存發生,這通常需要15-20分鐘,因爲要緩存的數據是巨大的,也有一些列有XML字符串,它被解析,然後存儲在bean 。
那麼最重要的是什麼?
- 爲什麼我們應該在連續啓動之間沒有數據更改時緩存?我可以將所有的bean封裝在一個通用的Config bean中並對其進行序列化。當我找出沒有數據被改變時加載這個序列化的對象 - 當然,加載序列化對象的速度遠快於數據庫命中加豆的數量。
那麼有什麼辦法可以解決這個問題嗎? 當然在數據庫級別。我會在應用程序啓動時進行查詢 - 自上次啓動以來數據庫表中是否有任何更改?如果是,則執行舊的無聊緩存過程並存儲一些唯一標識符並序列化,或者如果最後一個標識符和當前標識符相同,則只加載序列化對象。這個獨特的標識符當然是持久的。
怎麼樣MySQL CHECKSUM TABLE。我試着改變一行的列數據,並修改了校驗和。 –