gpt4 book ai didi

SQL 语句包含 "IN"子句时的数据库索引

转载 作者:搜寻专家 更新时间:2023-10-30 22:33:19 25 4
gpt4 key购买 nike

我的 SQL 语句执行起来确实需要很多时间,我真的不得不以某种方式改进它。

select * from table where ID=1 and GROUP in
(select group from groupteam where
department= 'marketing' )

我的问题是,如果我应该在 ID 和 GROUP 列上创建索引,这会有帮助吗?或者,如果不是,我应该在 DEPARTMENT 列的第二个表上创建索引吗?或者我应该为两个表创建两个索引?

第一个表有 249003。第二个表共有 900 行,而该表中的查询仅返回 2 行。这就是为什么我对响应如此缓慢感到惊讶。

谢谢

最佳答案

您还可以使用 EXISTS,具体取决于您的数据库,如下所示:

select * from table t
where id = 1
and exists (
select 1 from groupteam
where department = 'marketing'
and group = t.group
)
  • 在 groupteam 的部门和组的各个索引上创建一个复合索引
  • 在表的id和组上创建复合索引或单独索引

根据您的数据库进行解释/分析,以查看您的数据库引擎如何使用索引。

关于SQL 语句包含 "IN"子句时的数据库索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41043798/

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