1. Es中10億級別的數據量,如何提升查詢效率mysql
(1) 性能優化關鍵:file system cachesql
a. 不要期待隨手挑一個參數,就能夠萬能的應對全部性能慢的場景數據庫
b. es依賴於底層的file system cache,若是給file system cache更多的內存,儘可能讓內存容納全部的idx segment file索引數據文件,則搜索時均走內存,性能很高。若是內存較少,其餘索引將存入磁盤,從磁盤搜索的性能多是數秒。api
c. 生產環境的最佳狀況,是僅僅在es中存少許屬性字段,即須要用於搜索的那些索引,額外的屬性存入其餘數據庫中,如mysql/mongo/hbae。緩存
d. 若是內存確實是瓶頸,能夠採用數據預熱,即單獨作一個專門的緩存預熱子系統,存儲比較熱門的數據到file system cache。性能優化
e. 也能夠採用冷熱分離,i將冷數據寫入一個索引,熱數據寫入另外一個索引,確保熱數據在被預熱以後,儘可能留在file system cache中,別讓冷數據給沖刷掉。性能
f. 不要讓es作數據關聯查詢等數據,在document模型設計時考慮,將關聯後的數據存入es中優化
g. 分頁查詢性能較差,所以不容許深度分頁,能夠用scroll api不斷下拉一頁一頁展現, scroll一次性生成全部數據的一個快照,缺點是不適於隨意跳到任何一頁的情景設計