我试图避免在我的rails站点中出现过多的DB点击/查询。给定一个url数组,我需要知道是否已经在我的数据库中创建了相应的网站,以便在需要时创建它。
1) 第一个方法从数组中选择所有URL,然后查询这个较小的集合,以确定是否已创建给定的URL
urls = ["https://www.google.com/", ... "https://stackoverflow.com"]
my_sites = Website.where url: urls
urls.each_with_index do |url, i|
this_site = my_sites.find_by url: url
if this_site == nil
#do stuff
end
end
2) 第二种方法分别从记录中选择每个站点
urls = ["https://www.google.com/", ... "https://stackoverflow.com"]
urls.each_with_index do |url, i|
this_site = Website.find_by url: url
if this_site == nil
#do stuff
end
end
3) 另一种方式?这两种方法似乎都不太有效,我相信它们都在打开大量的数据库连接。