ActiveRecordでデータが存在するかを調べる時はpresent?よりのexists?の方が良いと聞いたので違いを調べてみました。
調べたところ「LIMIT 1の有無」と「カラムの情報を取得するかどうか」が違っていました。
2.2.0 :005 > Item.where(name: 'name').exists? Item Exists (0.2ms) SELECT 1 AS one FROM "items" WHERE "items"."name" = ? LIMIT 1 [["name", "name"]] 2.2.0 :007 > Item.where(name: 'name').present? Item Load (0.2ms) SELECT "items".* FROM "items" WHERE "items"."name" = ? [["name", "name"]]