ES 调优手段总结
ES调优手段
1.设置dynamic为strice(严格模式,put任何新字段都会提示异常),避免ES集群因新增字段导致性能下降。
因此常见的处理方案都是通过建立别名prod_product_xx索引,上线前先将新索引数据初始化新数据,然后在修改索引别名
2._source禁用后可以进行搜索,但无法返回字段内容。
3.index决定该字段是否加入倒排索引(默认为true),开启后是无法对字段内容进行分词的,也就无法进行分词搜索。
4.enabled类似index与doc_value的总开关(默认为true),会存储在_source。但index和doc_value不会被存储。所以关闭后则不可以进行搜索和排序,但可以拿到原值。
5.doc_value是一个列式存储,所有很适合排序。
6.fielddata与doc_value类似,但会加载到内存进行排序。_id是默认开启的,这里要慎用。
7.copy to拷贝
写入流程优化
bulk方式写入相比单条写入效率更高,网络IO也更好。
_ID在分片级别是唯一的,并不是在集群唯一
文档落盘过程:
文档写入时,会先写Index buffer然后记录translog到OS Cache
文档从每秒刷新到OS Cache中生龙segment,并定时将translog落盘
OS Cache中的segment会定期被刑新到磁盘上,同时删除translog
架构设计:
读写分离集群
自定义_id,避免读取原文档的会多一次IO行为
每天坚持,终会抵达!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了