Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用join更新许多行的速度非常慢

使用join更新许多行的速度非常慢
EN

Stack Overflow用户
提问于 2021-08-05 11:33:12
回答 1查看 30关注 0票数 2

我有一个包含五个相关字段的表- idsourceiidtrack_hashalias。我想用一个公共的track_hash将所有条目分组,然后对每一行使用最低的source保存行的id (为了支持最高的iid而打破领带),从它的组到alias字段。为此,我编写了以下查询:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
with best as 
(SELECT id as bid, track_hash FROM
    (SELECT id, track_hash,
        RANK () OVER ( 
            PARTITION BY track_hash
            ORDER BY source asc, iid DESC
        ) rank
        from albums
    )
    where rank = 1
)
select bid, a.* from albums a inner join best
on a.track_hash = best.track_hash

这在24k行上需要完全合理的2秒。现在,我不想简单地看到这个id,而是真正地保存它。为此,我使用了以下非常类似的查询:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
with best as 
(SELECT id as bid, track_hash FROM
    (SELECT id, track_hash,
        RANK () OVER ( 
            PARTITION BY track_hash
            ORDER BY source asc, iid DESC
        ) rank
        from albums
    )
    where rank = 1
)
update albums
set alias = bid FROM albums a inner join best
on a.track_hash = best.track_hash

然而,这个花费了1到10分钟的时间,我真的不明白为什么。引擎不是必须将每一行与其best.id/alias匹配吗?这正是我对更新所做的事情吗?为什么会发生这种事?我做错了什么?

查询计划如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MATERIALIZE 1
CO-ROUTINE 4
SCAN TABLE albums USING INDEX track_hash_idx
USE TEMP B-TREE FOR RIGHT PART OF ORDER BY
SCAN SUBQUERY 4
SCAN TABLE albums USING COVERING INDEX track_hash_idx
SEARCH SUBQUERY 1 USING AUTOMATIC PARTIAL COVERING INDEX (rank=?)
SEARCH TABLE albums AS a USING COVERING INDEX track_hash_idx (track_hash=?)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-05 11:41:04

您不需要连接到albums (再说一次)。

UPDATE ... FROM语法实际上提供了albumsbest的隐式连接。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UPDATE albums AS a
SET alias = b.bid 
FROM best AS b
WHERE a.track_hash = b.track_hash
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68672551

复制
相关文章
Xshell/Xftp连接Linux速度非常慢(已解决)
1、打开sshd服务的配置文件/etc/ssh/sshd_config,把UseDNS yes改为UseDNS no
Arebirth
2020/06/19
5.4K0
FtpClient上传文件速度非常慢,而且大小为0,上传失败
添加代码:调用FTPClient的enterLocalPassiveMode();方法,设置为被动模式,既可以解决。
Arebirth
2020/06/19
2.7K0
idea使用debug模式启动非常慢
后来发现,之前在调试代码时不注意给属性加了断点,去掉idea的Breakpoints里的java field watchpoints就不卡了,如下:
凯哥Java
2022/12/16
2.2K0
idea使用debug模式启动非常慢
三种方法解决升级更新 WordPress 速度慢的问题
如果你的 WordPress 搭建在国内服务器上,那你肯定遇到过 WordPress 更新失败的问题。我在腾讯云上实测下载官方安装包速度不过每秒十几 k。那么除了官方繁琐的“三步”升级法(手动覆盖文件)外还有其他更高效的更新方法吗? 方法一:WP-CLI WP-CLI 是官方推出的一款 WordPress 命令行工具。无需浏览器,你就可以实现快速安装、更新主题、配置站点、搜索替换等几乎所有可以想到的功能。 如何安装 WP-CLI 这里不做说明,请移步官方安装指南。 假如你已经安装好了 WP-CLI,那么首先
沈唁
2018/05/24
4.5K0
使用pyppeteer 下载chromium 报错 或速度慢
使用Reuqests-html的render函数,它会在用户目录(默认是~/.pyppeteer/)中下载一个chromium,然后用它来执行JS代码。
py3study
2020/10/27
2.3K0
[日常] 解决github速度特别慢
nslookup github.global.ssl.fastly.Net nslookup github.com
唯一Chat
2019/11/22
1.6K0
docker容器内pip 无法安装包或者速度慢,源更新
文章目录 docker容器内源更新 docker容器内源更新 创建pip.conf文件 $ mkdir ~/.pip $ vim ~/.pip/pip.conf 添加以下内容 [global] index-url = http://pypi.douban.com/simple [install] use-mirrors =true mirrors =http://pypi.douban.com/simple/ trusted-host =pypi.douban.com
AI拉呱
2021/01/14
2.7K0
内嵌tomcat启动速度慢
项目上最近要把内置的jetty换成tomcat, 来更好的支持servlet 3.0 本来以为换个容器, 几十行代码就好了. 实际上换了tomcat后, 一开始启动tomcat, 非常的慢. jetty只要几秒就可以启动的web工程, 内嵌tomcat花了接近15s, 直接启动tomcat, 接近10s. 后来试了下, 删除了项目里的web.xml, 发现直接启动tomcat只要0.6s, 而内嵌tomcat居然要5s. 这就很奇怪了, 因为web工程里既没有WEB-INF/lib, 也没有web.xml,
用户1216491
2018/03/29
1.9K0
解决WordPress访问速度慢
打开wordpress代码中的文件wp-includes/script-loader.php文件
似水的流年
2019/12/05
1.8K0
解决Github访问速度慢
大部分情况下修改完Hosts文件后直接生效,如果不生效,可以尝试手动刷新DNS缓存,具体如下:
花落花相惜
2021/11/25
2.8K0
join的使用
MySQL不支持OUTER JOIN,但是我们可以对左连接和右连接的结果做UNION操作来实现。
西西嘛呦
2020/08/26
4440
解决github访问速度慢
GitHub是一个面向开源及私有软件软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。
幻影龙王
2021/09/08
3.9K0
解决Github下载速度慢的问题
分享两款github加速插件来解决Github资源下载速度慢的问题。 这两款脚本使用方法相同,都需要使用脚本管理工具来运行,首先要给你的浏览器安装Tampermonkey(油猴脚本管理器),安装油候脚本管理器后,直接打开这两个脚本的安装地址,点击安装按钮即可安装。 Github 增强 – 高速下载 https://greasyfork.org/zh-CN/scripts/412245 启用插件后在资源的后面出现下载节点,直接点击节点就可以直接调用下载工具下载。 Github 镜像访问,加速下载
兮动人
2021/06/11
2.3K0
VS小技巧 | Visual Studio 使用插件迅速找出编译速度慢的瓶颈,优化编译速度
嫌项目编译太慢?不一定是 Visual Studio 的问题,有可能是你项目的引用关系决定这个编译时间真的省不下来。
Enjoy233
2021/12/23
3.4K0
VS小技巧 | Visual Studio 使用插件迅速找出编译速度慢的瓶颈,优化编译速度
Android Studio导入项目非常慢的解决办法
问题     Android Studio目前已经更新到2.0 Preview 6了,作为Google大力推崇的开发工具,相对于Eclipse ADT有着不可比拟的优势。然而在实际使用时,依然有不少不爽的地方。Android Studio原生支持使用Gradle来构建项目本是个不错的想法,使用动态语言Groovy定义项目构建过程,避免了build.xml文件的繁琐定义。但是Gradle的二进制包体积较大,而且用户可能按照了不同的Gradle版本,构建时可能会出现各种问题。因此又提出了Gradle Wrapp
24K纯开源
2018/01/18
1.4K0
Android Studio导入项目非常慢的解决办法
使用d3.js 的join()函数处理dom元素的更新
v5 版本可以简话成.join('element') 自动处理 enter 和 exit
狂奔滴小马
2021/11/15
2.5K0
使用 JS 监听加载,避免谷歌广告拖慢网页的加载速度
如果我的网页上有多个广告单元,把该段引入 JS 的代码 放到 head 里 既可以达到一次载入 JS 所有 ins 都可以接到广告,或者还可以使用 JS 监听的方式加载。
Yangsh888
2022/03/28
2.1K0
Mac 解决GitHub速度慢问题
终端执行, MacOS 的登录用户不是 root,没有最高权限。修改一些系统保护的资源时,需要临时切换到 root 用户。root 具有最高权限,可以做任何事情。此时需要使用 sudo 命令。
leader755
2022/03/09
6.1K0
Mac 解决GitHub速度慢问题
本地 Docker 打开 WordPress 速度慢
8 G Mac + Docker 环境下运行 WordPress ,本地打开站点首页耗时非常长,虽然怀疑是内存不足导致的,但是无凭无据纯属猜测。下面是我的一些分析记录:
上山打老虎了
2022/06/15
5.5K0
本地 Docker 打开 WordPress 速度慢
解决GitHub国内访问速度慢的问题
最近多次接触GitHub,但是访问速度巨慢,在网上查了查方法好像就是修改hosts文件,下面给出方法。
岳泽以
2022/10/26
3.8K0
解决GitHub国内访问速度慢的问题

相似问题

许多行的SQLite更新速度非常慢

10

MySQLi多行插入速度非常慢

50

表的更新速度非常慢

26

表本身的Select / Join查询速度非常慢

10

SQL join速度非常慢,数据量有限

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文