2014-03-28 72 views

回答

3

首先,我認爲重要的是要強調分區分區之間的區別。

據我瞭解,在Lucene的分區將意味着你有多個指數(獨立IndexReader S/IndexWriter S/Directory情況下),但都將在同一個JVM下運行。

拆分將意味着上述單獨的JVM中提到的一切(也將是有意義的指標放在不同的磁盤上,如果你是磁盤綁定)。

無論如何,有沒有簡單的答案,但這些都是一些基本點:

優點

  • 更快的索引(可以並行完成) - 無論是分片和分區
  • 更快的搜索(查詢計算可以並行完成) - 分片和分區
  • 更小的索引通常意味着更少的GC開銷和更多的可預測性 - shar數據在操作系統的緩存擬合丁只
  • 較小的指數上漲的機會 - 分片僅

詳細點here

缺點

  • 增加了複雜性 - 無論是
  • 增加維護成本 - 分片僅
  • 我不認爲grouping and joining會跨越碎片可能

以上說,如果你在性能上掙扎或者未來計劃大量數據涌入,我只會推薦分片。如果數據是邏輯分離的,分區通常是一個好主意;你可以用它作爲分片的第一步(如果你這樣做的話)。