-
技术文章
- [Elasticsearch如何做到亿级数据查询毫秒返回] (https://mp.weixin.qq.com/s/8ibE2JvlqAc6Ee-RNvkkCA)
- ES性能没有想象中的好。特别在面对几亿条数据的时候,可能跑个搜索5~10s。
- 针对海量数据的查询优化,没有银弹。就是不要期待着随手调一个参数,就可以万能的应对所有的性能慢的场景。
- 优化核心:filesystem cache
- es 的搜索引擎严重依赖于底层的 filesystem cache
- 提高cache:机器的内存,至少可以容纳你的总数据量的一半
- 控制索引量:仅仅在 es 中就存少量的数据,就是你要用来搜索的那些索引。其他的字段数据存在 mysql/hbase 里。
- 数据预热:自己的后台系统去搜索一下热数据,刷到 filesystem cache 里去
- 冷热分离:确保热数据在被预热之后,尽量都让他们留在 filesystem os cache 里,别让冷数据给冲刷掉。
- document 模型设计:es 里面的复杂的关联查询尽量别用,一旦用了性能一般都不太好。最好是先在 Java 系统里就完成关联,将关联好的数据直接写入 es 中。
- 减少甚至避免翻页:因为es 的分页是较坑的,在分布式情况下,你要查第 100 页的 10 条数据,不可能说从 5 个 shard,每个 shard 就查 2 条数据。
- 不允许深度分页(默认深度分页性能很差)
- 不断下拉出来一页一页
- 不能随意跳到任何一页的场景
今日份打卡 167/365
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。