当前位置:   article > 正文

亿级以上的数据量 ES如何优化_es数据量大解决方案

es数据量大解决方案

1 增大fileSystem cache容量

	fileSystem cache存的是最近搜索过、然后缓存下来的索引文档数据,会存放在堆内存外的 系统缓存里
	给es服务器多分配内存,增大此缓存的容量,即可增加查询性能
  • 1
  • 2

2 es只负责存储核心关键数据

	通过es查询出关键数据以后,再通过mysql/Hbase去查询其他相关数据
		建议 ES+Hbase
	   最佳实践,某个节点的内存=  节点上文档总大小的一半
		若文档数据远远大于内存,性能肯定不行,所以只存储海量数据里的关键字段
		否则和  mysql没啥区别,缓存空间太小,热数据被频繁刷掉,每次都是io查询磁盘
  • 1
  • 2
  • 3
  • 4
  • 5

3 冷热分离

	热数据放到索引a里,冷数据放到索引b里
	尽量把两种索引分开存放,热数据和冷数据分别在不同节点上
	
	以业务类型区分冷热数据
	以时间区分冷热数据
	   (定时任务 把n天前的数据 转移到冷节点里,在热节点里删除,在冷节点里新增)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4 数据预热

	自己搞个脚本/定时任务/系统
	专门去搜搜热数据
		把热数据文档缓存到内存里
			其他用户访问时就不用走io了
  • 1
  • 2
  • 3
  • 4

5 业务

	a 避免深度分页,深度分页可能会导致 查询从 级ms 变成几s
		,改设计,下拉方式刷新
			技术实现
					1 scroll api
					2 es自身的search_after 也支持这种优化方式
			这也是为什么很多网站都不允许翻页的原因
	b 避免大结果集查询
	c 避免复杂查询如 join/nested/parent-child文档关联、集合嵌套、父子文档嵌套
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

6 文档结构设计

	把相关数据关联处理以后,再存入es
  • 1

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/799150
推荐阅读
相关标签
  

闽ICP备14008679号