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一次性生成全部数据的一个快照,缺点是不适于随意跳到任何一页的情景设计