Mode.scope.first 而不是 Model.scope[0] - 为什么我们的执行时间如此不同?

问题描述

我有两个模拟代码

1 个代码

User.chats.first  // execution time 17 SEC!

2 代码

User.chats[0] // execution time is 2 ms 

sql 日志 - 1 个代码

    **(17018.8ms)**  SELECT  "chats".* FROM "chats" WHERE "chats"."user_id" = $1 AND 
("chats"."blocked" = 'f' OR "chats"."blocked" IS NULL) ORDER BY "chats"."id" ASC LIMIT $2

sql 日志 - 2 代码

    **(2.2ms)**      SELECT "chats".* FROM "chats" WHERE "chats"."user_id" = $1 AND 
("chats"."blocked" = 'f' OR "chats"."blocked" IS NULL) ORDER BY "chats"."id" ASC

beetwen first method 和 [0] 有什么不同?

为什么 17 秒和 2 毫秒的执行速度如此不同?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)