Elasticsearch查询——Profile API(性能分析)

本文深入探讨了Elasticsearch的Profile API,展示了如何通过性能分析优化查询效率,解析了查询树、收集器、聚合分析等关键概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Profile API 性能分析

平时开发的过程中我们可能需要对一些查询操作进行优化,而优化之前的工作就是要对操作的性能进行分析,而ES提供了Profile API来帮助用户进行性能分析。它让用户了解如何在较低的级别执行搜索请求,这样用户就可以理解为什么某些请求比较慢,并采取措施改进它们。

需要注意的是Profile API不测量网络延迟、搜索资源获取阶段、请求在队列中花费的时间或在协调节点上合并碎片响应时花费的时间。

需要注意的是开启性能分析会给查询带来非常大的性能开销。所以不要尝试将一个开启了性能分析的请求和为开启性能分析的请求比对时间效率。

开启性能分析

需要开启性能分析,只需要在原有请求中设置"profile": true。而当查询嵌套的内容比较多的时候返回的性能分析内容会非常冗长,所以可以在请求URI后面设置?human=true获取比较清晰的结构。

性能分析结构

下面依旧是使用之前kibana创建的kibana_sample_data_ecommerce做测试。下面是一个简单的查询请求。

GET /kibana_sample_data_ecommerce/_search?human=true
{
   
   
    "profile": true,
    "_source": false, 
    "query": {
   
   
        "match": {
   
   
            "category": "Women's Shoes"
        }
    }
}

返回内容

性能分析的相关报告在profile对象内。

{
   
   
    "took": 11,
    "timed_out": false,
    "_shards": {
   
   
        ......
    },
    "hits": {
   
   
        ......
    },
    "profile": {
   
   
        "shards": [
            {
   
   
                "id": "[tMhvMfVrTnGguu5QJ-1j-Q][kibana_sample_data_ecommerce][0]",
                "searches": [
                    {
   
   
                        "query": [
                            {
   
   
                                "type": "BooleanQuery",
                                "description": "category:women's category:shoes",
                                "time": "14.6ms",
                                "time_in_nanos": 14642543,
                                "breakdown": {
   
   
                                    "set_min_competitive_score_count": 0,
                                    "match_count": 3372,
                                    "shallow_advance_count": 0,
                                    "set_min_competitive_score": 0,
                                    "next_doc": 12574965,
                                    "match": 182802,
                                    "next_doc_count": 3378,
                                    "score_count": 3372,
                                    "compute_max_score_count": 0,
                                    "compute_max_score": 0,
                                    "advance": 0,
                                    "advance_count": 0,
                                    "score": 558388,
                                    "build_scorer_count": 12,
                                    "create_weight": 161677,
                                    "shallow_advance": 0,
                                    "create_weight_count": 1,
                                    "build_scorer": 1154576
                                },
                                "children": [
                                    {
   
   
                                        "type": "TermQuery",
                                        "description": "category:women's",
                                        "time": "1.3ms",
                                        "time_in_nanos": 1326026,
                                        "breakdown": {
   
   
                                            "set_min_competitive_score_count": 0,
                                            "match_count": 0,
                                            "shallow_advance_count": 50,
                                            "set_min_competitive_score": 0,
 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大·风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值