我們有計劃在應用程序端緩存數據庫表(以避免數據庫調用)。我們的緩存是關鍵值&值對的實現。如果我使用主鍵(column1)作爲鍵並將所有其他數據作爲值,那麼我們如何執行以下針對緩存的查詢?多個鍵和值對搜索
select * from table where column1 =?
select * from表where column2 =?和column3 =?
select * from table where column4 =?和 column5 =?和column6 =?
一個最簡單的選擇是構建3個緩存,如下所示。
(列1) - >數據
(列2 +欄3) - >數據
(column4 + column5) - > 數據
任何其他更好的選擇?
要點:
- 表中包含數百萬條記錄
- 我們使用的是Java的ConcurrentHashMap的緩存實現。
您是否考慮過像H2這樣的內存數據庫,而不是重新構建查詢系統? – CPerkins
您是否考慮在'Hibernate'中使用標準緩存? https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/performance.html它將解決您的問題並避免緩存實施問題。 –