Elasticsearch的索引机制分析

Elasticsearch一个开源的搜索搜索和分析引擎,具有存储和分析一体的非sql的文档搜索引擎。

新型的索引方式

Elasticsearch用于文档型数据的搜索,用于文档型数据的查询和分析。如果将直接将文档id绑定到关键词的正排的索引结构的k-v结构,在互联网中海量数据的使用,会产生大量的索引,占用巨大内存空间空间,降低索引的性能。
Elasticsearch摒弃了传统的结构化的数据库或者兴起的k-v结构,而采用v-k倒排索引。
什么是倒排索引?
倒排索引是Elasticsearch将文档内具有关键字的一系列文档id,与关键字形成新的k-v结构,即一个关键字对应一系列的文档id,再将其作为索引保存起来。通过这个关键字查询时,可以迅速地查询到相关的文档。
在这里插入图片描述
这种方式的好处兼顾了查询的性能和存储,大大减少了索引空间,提升性能。

索引的更新

比起数据库,动不动加锁的机制,Elasticsearch使用的索引采用的是不变的机制,好处在于:
不变的好处在于:

不需要锁。如果你从来不更新索引,你就不需要
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于 Elasticsearch 的内存分析,我们可以从以下几个方面进行考虑: 1. JVM 堆内存分析Elasticsearch 是基于 Java 开发的,它使用 Java 虚拟机(JVM)管理内存。通过监控和分析 JVM 的堆内存使用情况,可以了解 Elasticsearch 在内存中存储的数据量、缓存的使用情况等。可以使用工具如 VisualVM、jstat、jmap 等来获取堆内存信息并进行分析。 2. 分片和副本的内存使用:Elasticsearch数据分成多个分片,并在不同的节点上存储副本。每个分片和副本都会占用一定的内存空间。通过监控每个节点上的分片和副本数量,可以了解 Elasticsearch 集群中的内存使用情况。 3. 缓存的使用情况:Elasticsearch 使用了多种缓存机制来提高查询性能,如字段数据缓存、过滤器缓存、请求缓存等。通过监控和分析缓存的命中率、缓存大小等指标,可以评估缓存的使用效果和是否需要调整缓存配置。 4. 索引和搜索的内存开销:Elasticsearch 在内存中维护了索引结构和搜索相关的数据结构,如倒排索引、过滤器、聚合缓存等。通过监控和分析索引和搜索的内存开销,可以了解 Elasticsearch 在处理索引和搜索时的内存使用情况。 5. 内存溢出和泄漏问题:如果 Elasticsearch 集群中出现内存溢出或内存泄漏问题,需要进行详细的分析来确定具体原因。可以通过查看日志、分析堆转储快照(heap dump)等方式来进行故障排查。 需要注意的是,进行内存分析时应该结合实际业务场景和负载情况来进行评估和优化。每个 Elasticsearch 集群的配置和使用方式各有不同,因此具体的内存优化策略需根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值