4
什麼性能差異,如果有的話,以下兩個選項(mentioned in this answer).exists之間的性能差異?和.where.present?
Thing.where(name: "Bob").present?
其產生SQL之間存在
SELECT COUNT(*) FROM things WHERE things.name = "Bob";
和
Thing.exists?(name: "Bob")
其產生SQL
SELECT 1 AS one from things WHERE name ="Bob" limit 1;
由於SQL語句不同,理論上可能存在性能差異。但我不知道,假設name
在數據庫中被索引,是否有任何實際的區別。另外,對於Ruby-land中正在進行的工作量(例如初始化和GC),是否有任何差異?
如果它有什麼區別,我使用的是Rails 3.2.20。