查询一堆记录的有效方法是什么?

时间:2016-12-08 08:08:49

标签: sql ruby-on-rails activerecord

我有field_id和值{"1379" => 1, "1381" => "test"}的哈希值,我想搜索带有这些field_ids的字段。我在想两个解决方案:

enter image description here  1.遍历哈希并获取每个field_id以查找

enter image description here

  1. 映射哈希以获取field_id并使用查询来搜索字段
  2. enter image description here

    我很奇怪哪一个是最好的解决方案,因为我在数据库中有很多字段而且我担心性能。你能给我这个想法吗?

1 个答案:

答案 0 :(得分:1)

第二个当然,使用IN时只会执行一个查询,而不是为单个记录运行find

Field.where(id: field_ids)

上述查询只会执行一次

SELECT * from where fields.id IN (field_ids)

但是在第一个的情况下,它就像

SELECT * from where fields.id = field_id_1;
SELECT * from where fields.id = field_id_2;
SELECT * from where fields.id = field_id_3;
SELECT * from where fields.id = field_id_4;
...

当params hash很大时,这可能会非常昂贵。

希望有所帮助!