最近在作一個項目,因爲出於各類考慮(如節省數據庫空間,數據同步,便於操做...),大都會在一些字段上採起保存關聯ID的作法,頁面展現的時候就會經過轉換的方式,顯示關聯ID的名稱。如部門,職位等。mysql
如何經過ID獲得相關的名稱:sql
①經過連表查詢的方式,這種方法相信大夥都不會認同的。數據庫
②經過在啓動時將部門,職位,這些要高頻查詢的的表信息加載到緩存中,每次經過查詢緩存就能獲得顯示的名稱。但我的以爲每次要在內存中遍歷此次數據,並且這些部門表,職位表比較大,感受也不是一個最佳的方式。windows
③經過使用內存數據庫,在啓動時將mysql中的表加載在內存數據庫中,查詢的時候經過ID查詢內存數據庫,這比②少了在內存中遍歷這個環節,雖然這會涉及鏈接內存數據庫等開銷,但感受不必再比較下去。緩存
因爲本項目只使用內存數據庫的查詢功能,且是適合windows平臺部署,最終內存數據選擇爲:H2 。url
最終:spa
如何整合h2到項目中呢:只要在項目中加入h2的開發jar包,就能夠了,不須要h2的service端(若不是使用h2的內存模式,則要下載service端並進行啓動相關服務)。code
注意:內存
①To keep the database open, add ;DB_CLOSE_DELAY=-1
to the database URL. 開發
爲了讓內存數據庫一直開着,必需要在數據庫地址後面加上;DB_CLOSE_DELAY=-1
②如果數據庫地址沒有具體指定數據庫名稱則每次鏈接都會建立一個新數據db,so 應該在db url 後面指定具體名稱,如 jdbc:h2:mem:db1
項目已經在使用,暫時能知足需求,並尚未出什麼問題。