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在做怪. 好,既然找到了原因,那就把问题解决, ...
随机推荐
- HDC2022 开发者亮点抢先看,线上线下精彩活动等你探索!
原文:https://mp.weixin.qq.com/s/A2sfpPKBvF6zwinbUsgwiw,点击链接查看更多技术内容.
- Linux&Ubuntu之更换服务器
前言 更换网卡.主板上的板载网卡.主板是服务器硬件维护的常规操作.通常新换(板载)网卡的MAC地址会变更,而部分服务器更换主板也会导致板载网卡MAC地址变化.由于CAS(Ubuntu)系统会将新MAC ...
- css padding-right没有用?
前言 问题: 比如说我设置了width为100%了,这个时候我需要padding,但是padding-right似乎没有生效. 正文 原因 实际width=100%容器宽度+padding>容器 ...
- This beta version of Typora is expired, please download and install a newer version. 实测最简单有效的方案
This beta version of Typora is expired, please download and install a newer version. 实测最简单有效的方案 一.问题 ...
- 璀璨智行:V2X车路协同智慧交通
V2X车用无线通信技术是指车对外界的信息交换,作为未来智能交通运输系统的关键技术,璀璨智行潜心研究V2X技术,致力于V2X车路协同的落地,在智慧交通领域做出了卓越的贡献. 创业机会点 魏军博表示:& ...
- 双11专刊|云原生数据仓库AnalyticDB支撑双11,大幅提升分析实时性和用户体验
简介:2021年双十一刚刚落幕,已连续多年稳定支持双十一大促的云原生数据仓库AnalyticDB,今年双十一期间仍然一如既往的稳定.除了稳定顺滑的基本盘之外,AnalyticDB还有什么亮点呢?下面我 ...
- 学术顶会再突破!计算平台MaxCompute论文入选国际顶会VLDB 2021
简介: VLDB 2021上,阿里云计算平台MaxCompute参与的论文入选,核心分布式调度执行引擎Fangorn.基于TVR Cost模型的通用增量计算优化器框架Tempura等分别被Indu ...
- [FAQ] Golang error strings should not be capitalized or end with punctuation
当我们在 Golang 中使用 errors.New("Aaa.") 形式返回 error 信息时,文字内容不应该以大写字母开头或者标点符号结尾. 所以这样是可以的 errors. ...
- [Blockchain] 去中心化与互联网分布式的联系与区别
去中心化和传统分布式都是多机应用,这是它们的共同之处,但是背后有着不一样的用途. 我们所理解的传统分布式及其应用可以解决两个问题:冗余备份/扩容 和 并行计算. 而去中心化应用的目的是维护不可逆转数据 ...
- WPF 使用 Skia 解析绘制 SVG 图片
本文告诉大家如何在 WPF 里面,使用 Skia 解析绘制 SVG 图片.本文也适合控制台使用 SkiaSharp 解析绘制 SVG 图片,本文的 WPF 部分只是在 Skia 绘制完成之后,将 Sk ...