我需要從DB中緩存以下數據以便於訪問:如何緩存映射數據
數據被如此映射:A,B和C都是具有ID的對象。我將有作爲,B和C的列表,使得:
- 許多被映射到許多燒烤
- 許多B映射到許多銫
我將獲得一個A和一個C和將被要求查找如果C落在給出A.
我想我可以有2個高速緩存
- ABCache:什麼是BS爲A - 1:許多
- BCCache:什麼是銫的每個B - 1:許多
辦法一:我可以通過BCCache循環,找到通過ABCache的B,然後循環,找出A和然後比較給定的A.
另一種方法:我可以遍歷ABCache並找到所有Bs,然後循環遍歷Bs以查看C是否落入任何Bs中。
還有其他更好的方法嗎?
如果這是您需要進行的唯一查找,您還可以使用「ACCache」。插入是一個更加昂貴的過程,但最後你需要更少的內存,並且獲得更快的結果 - 尤其是如果你對緩存進行排序 – maja
爲什麼不使用一個大對象來存儲每個C的A呢?你可以發現C是否立即落入A. – maja