首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪一个更好-使用长的“where in”条件进行查询,还是使用许多小查询?

问哪一个更好-使用长的“where in”条件进行查询,还是使用许多小查询?
EN

Stack Overflow用户
提问于 2010-04-27 02:23:22
回答 4查看 213关注 0票数 6

也许这有点傻,但我只是不确定哪种更好。如果我必须在db中检查超过10k行才能存在,我该怎么办?

#1 -一个查询

代码语言:javascript
复制
select id from table1 where name in (smth1,smth2...{till 30k})

#2 -多个查询

代码语言:javascript
复制
select id from table1 where name=smth1

虽然,性能不是目标,但我也不想使用mysql ;)也许,任何其他解决方案都会更适合……谢谢。

更新:任务是获取域名列表,保存新的(还不在数据库中),并删除列表中显示的域名。希望,这会有一点帮助..。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-04-27 02:24:45

您应该做的是创建一个临时表,插入所有的名称,并(使用一个查询)为您的select连接这个表。

代码语言:javascript
复制
select id 
from table1 t1
inner join temptable tt on t1.name = tt.name
票数 4
EN

Stack Overflow用户

发布于 2010-04-27 02:25:29

单个查询很可能会执行得更好,因为第二个查询会产生大量的往返延迟。但是,如果您有许多名称,如示例中的名称,则第一个方法可能会导致达到内部限制。

在这种情况下,最好将姓名列表存储在一个临时表中并与其连接。

票数 3
EN

Stack Overflow用户

发布于 2010-04-27 02:53:58

根据您将来需要做类似的事情,您可能想要在数据库'strlist_ to _table‘中添加一个函数。让函数获取一个文本,其中您的输入由分隔符分隔(也可能传递给函数),在分隔符上拆分它以创建动态表格。然后你就可以使用

代码语言:javascript
复制
where in strlist_to_table('smth1|smth2', '|')

还可以防止sql注入(可能会在输入中出现小的波比表)。

就我的两分钱……

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

https://stackoverflow.com/questions/2715848

复制
相关文章

相似问题

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