首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为不在另一个表中的值编制索引

如何为不在另一个表中的值编制索引
EN

Stack Overflow用户
提问于 2018-11-09 03:53:35
回答 1查看 53关注 0票数 0

我需要找到在一个表中但不在另一个表中的所有ID。

我有一个简单的选择:

代码语言:javascript
复制
SELECT ID 
FROM  Table1 
WHERE ID NOT IN (SELECT id FROM Table2)

但是如果我做一个EXPLAIN QUERY PLAN,我会得到

代码语言:javascript
复制
"0"|"0"|"0"|"SCAN TABLE Table1"
"0"|"0"|"0"|"USING INDEX index_Table2_id FOR IN-OPERATOR"

我的两个表都将id定义为id integer PRIMARY KEY (用于table1)和一个用于table2的普通索引。

关于如何加快查询速度,有什么建议吗?

我在table1中有大约200000条记录,在table2中有大约200万条记录,查询运行大约需要500ms。

是什么原因导致查询运行如此缓慢,我有什么建议可以加快它的速度吗?

EN

回答 1

Stack Overflow用户

发布于 2018-11-09 21:20:37

您可以将LEFT JOINtable2.ID IS NULLWHERE子句一起使用

代码语言:javascript
复制
SELECT table1.ID
FROM table1 LEFT JOIN table2 ON table1.ID = table2.ID
WHERE table2.ID IS NULL;

我相信这会更快。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53215194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档