MySQL:从C#批量发送20000 SELECT查询

问题描述 投票:0回答:1

我必须做出一个非常简单的选择,即仅更改参数。但是我必须对大量关键字重复此操作。

SELECT url from mytable WHERE keyword like '%{key}%'

我可以使用

Select url from mytable where keyword in ('key1', 'key2'...) 

但是我需要知道哪个url是每个keywordassociated。看来MySQL不支持table parameter,并且执行同一条语句20K次非常慢。

哪种解决方案适合此任务?

c# mysql database query-parameters
1个回答
0
投票
Select url, keyword from mytable where keyword in ('key1', 'key2'...) 

这样,您将同时获得URL及其对应的合格关键字。但是如果您不了解更多的表,记录,重复项等信息,则可能会得到比您关心的更多的记录。

关于尝试查找20k关键字,您可能希望构建一个辅助临时表并将一个JOIN应用于该表。然后,您可以一次插入ex:一次插入100个关键字(这样会更快(或执行一些批量加载选项)),然后使用JOIN到此临时表进行查询。

最后,如果可能有多行,则可能需要

Select 
      url, 
      keyword,
      count(*) timesFound
   from 
      mytable 
   where 
      keyword in ('key1', 'key2'...) 
   group by
      url, 
      keyword
© www.soinside.com 2019 - 2024. All rights reserved.