gpt4 book ai didi

sql - SELECT DISTINCT 内部 WHERE IN 子句性能

转载 作者:行者123 更新时间:2023-12-01 06:31:20 25 4
gpt4 key购买 nike

我对以下代码有一个性能问题...

SELECT*FROM GCL_Loans WHERE Loan_ID IN
(
SELECT Loan_ID FROM GCL_Loan_Items
)
GCL_Loans有包含基本信息的贷款 list CCL_Loan_Items有关于贷款中特定项目的信息。 GCL_Loan_Items 中可能存在重复的 Loan_ID

谁能解释为什么这个查询会比上面的查询更快或更慢?
SELECT*FROM GCL_Loans WHERE Loan_ID IN
(
SELECT DISTINCT Loan_ID FROM GCL_Loan_Items
)

最佳答案

“DISTINCT”版本可能更快,因为 IN子句将有一个较小的数据集来搜索以确定是否有任何给定的 GCL_Loans.Loan_ID在集合中。没有 DISTINCT ,数据集会更大。

查询优化器将自动识别 IN 是一个相当好的论点。测试是设置方式,而不是列表方式测试,并在自动索引期间执行 DISTINCT ......但我以前见过失败。

请注意,这里的子选择也可能失败,因为某些数据库 (mysql) 会为主选择中的每个元素执行子选择。

关于sql - SELECT DISTINCT 内部 WHERE IN 子句性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20710980/

25 4 0
文章推荐: java - 15个java益智游戏
文章推荐: jquery - 将
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com