es 排序突然很慢的原因
今天突然之间发现一个访问es的查询很慢。由刚上线之前测试的100ms直接到了5s左右。瞬间懵逼。
这个用户索引大概200w的数据。
查询语句如下
GET /user/_search
{"from":0,"query":{
"bool":{"must_not":[{"term":{"_id":"5faf30e6fe3c39a30de907c3"}}]
}
},"size":30,"sort":[
{"clips_rec_state":{"order":"desc","unmapped_type":"long"}},
{"_geo_distance":{"distance_type":"plane","geo_point":[0,0],"order":"asc"}}
]}.
通过一步一步的分析发现 {"clips_rec_state":{"order":"desc","unmapped_type":"long"}} 这个排序语句导致了速度非常慢。
为啥这个排序语句很慢了?
网上查找了很多资料也没有具体的解决办法,然后只能通过自己的猜想和尝试才发现了es这个坑。
我们公司用的mongodb 加 go. go 语言默认有零值。我们一般不会将零值插入到数据库中,也就是clips_rec_state这个字段为0
的时候,mongodb是没有这个字段。然后我们从mongodb同步到es的时候这个字段的值也是没有的,除非设置了非零值。
其实就是因为这个字段没有默认值导致的。既然找到了源头,解决就有很多办法了。
我直接将这个字段的零值也存在了数据库中,然后es也就有了。
然后再将以前的旧数据同步一下。使用es这个请求:
POST user/_update_by_query?conflicts=proceed
{
"script":{
"lang":"painless",
"source":"if (ctx._source.clips_rec_state == null) {ctx._source.clips_rec_state= 0}"
}
}
将以前没有这个字段的数据增加这个字段并复制为0。然后访问这个接口就发现恢复了es该有的速度了。
es 排序突然很慢的原因的更多相关文章
- 腾讯面试:一条SQL语句执行得很慢的原因有哪些?---不看后悔系列
说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你"输入URL回车之后,究竟发生了什么"一样,看看你能说出多少了. 之前腾讯 ...
- 一条SQL语句执行得很慢的原因有哪些?
说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你“输入URL回车之后,究竟发生了什么”一样,看看你能说出多少了. 之前腾讯面试的实话,也问到这 ...
- 一条SQL语句执行得很慢的原因有哪些?(转)
一条 SQL 语句执行的很慢,那是每次执行都很慢呢?还是大多数情况下是正常的,偶尔出现很慢呢?所以我觉得,我们还得分以下两种情况来讨论. 1.大多数情况是正常的,只是偶尔会出现很慢的情况. 2.在数据 ...
- 一条SQL语句执行得很慢的原因有哪些
说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你"输入URL回车之后,究竟发生了什么"一样,看看你能说出多少了. 之前腾讯 ...
- 一条SQL语句执行得很慢的原因有哪些?| MySQL高性能优化规范建议
一条SQL语句执行得很慢的原因有哪些 https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247485185&idx=1&am ...
- ES排序值相同顺序随机的问题
ES排序值相同顺序随机的问题 code[class*="language-"] { padding: .1em; border-radius: .3em; white-space: ...
- 浅析SQL查询语句未显式指定排序方式,无法保证同样的查询每次排序结果都一致的原因
本文出处:http://www.cnblogs.com/wy123/p/6189100.html 标题有点拗口,来源于一个开发人员遇到的实际问题 先抛出问题:一个查询没有明确指定排序方式,那么,第二次 ...
- OpenGL ES无法获取贴图数据原因
最近在做一个项目,要从贴图中获取图像数据,查了很多资料,也琢磨很久,获取到的数据都是0.终于在一次偶然的机会,发现了端倪,成功了. 不得不说这"一分灵感"真的很重要 以下是在获取贴 ...
- JavaWeb出现404一个很隐蔽的原因
- MyEclipse运行很慢的原因
myEclipse以其丰富的功能博得程序员的热爱,但是其速度确实有问题,jsp文 件打开会不停的校验,甚至出现卡死,分析原因,原来是 validation在做怪. 好,既然找到了原因,那就把问题解决, ...
随机推荐
- Centos8安装docker-ce
一.安装步骤 1.安装yum-utils yum install -y yum-utils 2.配置阿里源 yum-config-manager --add-repo http://mirrors.a ...
- 重学c#系列——什么是性能[外篇性能篇一]
前言 简单写一下性能的简介. 正文 什么是性能,很多时候有一个问题,那就很多人喜欢说.这个服务有很多访问,我们需要这样设计. 这是一个无法验证的指标,访问次数是多少? 响应时间是多少. 我把这归纳为自 ...
- ASP.NET CORE 框架揭秘读书笔记系列——命令行程序的创建(一)
一.dotnet --info 查看本机开发环境 dotnet --info 会显示本机安装的SDK版本.运行时环境.运行时版本 二.利用命令行创建.NET项目 我们不仅可以利用脚手架模版创建各种类 ...
- 使用Databricks进行零售业需求预测的应用实践
简介:本文从零售业需求预测痛点.商店商品模型预测的实践演示,介绍Databricks如何助力零售商进行需求.库存预测,实现成本把控和营收增长. 作者:李锦桂 阿里云开源大数据平台开发工程师 本文从零 ...
- Nacos2.0的K8s服务发现生态应用及规划
简介:Nacos 是阿里巴巴于 2018 年开源的注册中心及配置中心产品,帮助用户的分布式微服务应用进行服务发现和配置管理功能.随着 Nacos2.0 版本的发布,在性能和扩展性上取得较大突破后,社 ...
- 网易游戏基于 Flink 的流式 ETL 建设
简介: 网易游戏流式 ETL 建设实践及调优经验分享- 网易游戏资深开发工程师林小铂为大家带来网易游戏基于 Flink 的流式 ETL 建设的介绍.内容包括: 专用 ETL EntryX 通用 ETL ...
- Serverless 工程实践 | 细数 Serverless 的配套服务
简介: 上文说到云计算的十余年发展让整个互联网行业发生了翻天覆地的变化,Serverless 作为云计算的产物,或者说是云计算在某个时代的表现,被很多人认为是真正意义上的云计算,关于"Se ...
- UWP 从文件 StorageFile 转 SoftwareBitmap 图片方法
本文告诉大家如何在 UWP 从 文件 StorageFile 转 SoftwareBitmap 图片的方法 使用以下三步即可从文件 StorageFile 转 SoftwareBitmap 图片 第一 ...
- 实践探讨Python如何进行异常处理与日志记录
本文分享自华为云社区<Python异常处理与日志记录构建稳健可靠的应用>,作者:柠檬味拥抱. 异常处理和日志记录是编写可靠且易于维护的软件应用程序中至关重要的组成部分.Python提供了强 ...
- 【2023微博评论爬虫】用python爬上千条微博评论,突破15页限制!
目录 一.爬取目标 二.展示爬取结果 三.爬虫代码 四.同步视频 五.获取完整源码 您好,我是@马哥python说,一枚10年程序猿. 一.爬取目标 前些天我分享过一篇微博的爬虫: 马哥python说 ...