gpt4 book ai didi

performance - 如何高效地从两个表中选择数据?

转载 作者:行者123 更新时间:2023-11-29 13:19:57 25 4
gpt4 key购买 nike

我有两个表:A,B

Aprisoner_idprisoner_name 列。

B 包含有关囚犯的所有其他信息,包括 prisoner_name 列。

首先,我从 B 中选择我需要的所有数据:

WITH prisoner_datas AS
(SELECT prisoner_name, ... FROM B WHERE ...)

然后我想知道我的prisoner_datas 的所有id。为此,我需要按 prisoner_name 列合并信息,因为这对两个表都是通用的

我做了以下

SELECT A.prisoner_id, prisoner_datas.prisoner_name, prisoner_datas. ...,
FROM A, prisoner_datas
WHERE A.prisoner_name = prisoner_datas.prisoner_name

但是它运行起来很慢。我怎样才能提高性能?

最佳答案

B 表中的 prisoner_name 连接列上添加索引。那么下面的连接应该会有一些性能提升:

SELECT
A.prisoner_id,
B.prisoner_name,
B.prisoner_datas.id -- and other columns if needed
FROM A
INNER JOIN B
ON A.prisoner_name = B.prisoner_name

请注意,我在这里使用了显式连接语法。它不是必需的,查询计划可能不会更改,但它使查询更易于阅读。我认为 CTE 不会有太大变化,但连接列上缺少索引在这里应该很重要。

关于performance - 如何高效地从两个表中选择数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43782260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com