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

MySQL: bulk sending 20000 SELECT query from c#

我必须做一个非常简单的 select,其中只有参数发生变化。但是我必须为大量的关键字重复它。

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

我可以使用

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

但我需要知道哪个 url 与每个 关键字 相关联 ].似乎 MySQL 不支持 table parameter 并且执行相同的语句 20K 次非常慢。

什么解决方案适合这个任务?

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

这样,您将获得 URL 及其相应的限定关键字。但是如果不了解更多 table、记录、重复项等,您可能会得到比您关心的更多的记录。

至于尝试去寻找 20k 个关键字,您可能需要构建一个辅助临时文件 table 并对其应用 JOIN。然后,您可以一次插入 ex: 100 个关键字,这样会更快(或执行一些批量加载选项),然后使用 JOIN 查询到这个临时 table。

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

Select 
      url, 
      keyword,
      count(*) timesFound
   from 
      mytable 
   where 
      keyword in ('key1', 'key2'...) 
   group by
      url, 
      keyword