首页 > 其他 > 详细

es查询性能优化

时间:2019-11-29 11:44:48      阅读:72      评论:0      收藏:0      [点我收藏+]

1.如果条件允许,内存和cpu一定要足够多,要超过总数据量的1半以上最好,当然数据量很大的时候要在经常查询数据的2倍以上。

2.数据分离存储,经常查询的数据放一些索引,不经常查询的放一部分索引,然后通过唯一的id关联即可,需要查那些不经常查的数据的时候通过id查询即可,这里可以和hbase联合使用。把条件字段和经常查看的字段放在es中,不经常查看的放hbase中,这样既可以省es的空间,性能效果也俱佳

3.数据大时,每个索引的数据量不要太大,一般很大的时候可以每天一个索引,或者每月一个索引,具体看业务来选择

4.进行数据预热,即,每天或者定期后台去访问那些经常查询的数据,把它们加载到filesys_cache中去,因为es查询时,如果缓存里有该数据就直接从缓存读取,没有就去硬盘把数据加载到该缓存中,下次再查时就快很多了,所以有时候es第一次查询时会有点慢,后面就快很多了

5.es中不要做太复杂的查询,尤其是关联查询,如果有些一定要关联,关联的条件也要尽量少,比如id即可

6.可以使用fitter过滤会快很多,尽量不要存为全文索引的数据类型,

7.es不适合做长期存储,一般只挑近期的,常用的放进去即可,久远的数据或者不常查询的,可以放到hive中,那些查的少,肯定速度也不要求,所以放hive中最合适

8.查询的时候当然是副本多一些比较好,但是一般3个副本就可以了,太多也不合适

9.有钱的话,多加一点cpu和内存是最好的,这是最实在的办法,有钱了,有资源了,上面那些就显得微不足到了。

10.另外es查询的时候尽量不要排序,看情况而定吧,排序的时候可能会有点慢。

11.kibana是个好东西,很多功能足够了,唯一的缺点就是不能进行权限控制,社区版已经具备不少功能了,当然有能力可以使用付费的,效果肯定更好,这是对没有开发能力和不想花太多时间去写es代码的同学说的。有时间,当然自己写一个系统来事先es查询肯定定制化开发更好的。

 

es查询性能优化

原文:https://www.cnblogs.com/xinyumuhe/p/11956589.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!