Ruby中的缓存问题

Ruby中的缓存问题,ruby,Ruby,我用Ruby构建了我的第一个web应用程序,我注意到服务器在加载每个页面时速度非常慢。以下线路至少重复10次: CACHE User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8&q

我用Ruby构建了我的第一个web应用程序,我注意到服务器在加载每个页面时速度非常慢。以下线路至少重复10次:

  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE Entreprise Load (0.0ms)  SELECT  "entreprises".* FROM "entreprises" WHERE "entreprises"."id" = $1 LIMIT $2  [["id", "b50b7beb-7417-4110-b602-660e9ecf067e"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE Entreprise Load (0.0ms)  SELECT  "entreprises".* FROM "entreprises" WHERE "entreprises"."id" = $1 LIMIT $2  [["id", "b50b7beb-7417-4110-b602-660e9ecf067e"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
[ActionCable] [1299d9c9-e5c9-4e49-b0ff-b986c415eee8] ConferencierChannel stopped streaming from conferencier_channel
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE Entreprise Load (0.0ms)  SELECT  "entreprises".* FROM "entreprises" WHERE "entreprises"."id" = $1 LIMIT $2  [["id", "b50b7beb-7417-4110-b602-660e9ecf067e"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE Entreprise Load (0.0ms)  SELECT  "entreprises".* FROM "entreprises" WHERE "entreprises"."id" = $1 LIMIT $2  [["id", "b50b7beb-7417-4110-b602-660e9ecf067e"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE User Load (0.0ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "1299d9c9-e5c9-4e49-b0ff-b986c415eee8"], ["LIMIT", 1]]
  CACHE Entreprise Load (0.0ms)  SELECT  "entreprises".* FROM "entreprises" WHERE "entreprises"."id" = $1 LIMIT $2  [["id", "b50b7beb-7417-4110-b602-660e9ecf067e"], ["LIMIT", 1]]

我的代码中是否有创建此文件的设置?

此问题似乎是N+1查询问题:

我想你的控制器里有这个代码

@entrepies = Entrepry.all
并且像这样召唤视野

<% @enrepies.each do |entrepry| %>
    <p><%= entrepry.title %></p>
    <p>
        <% entrepry.users.each do |user| %>
            <%= user.name %><br/>
        <% end %>
    </p>
<% end %>

这段代码有n+1个查询问题每个Enterprie对象从数据库调用用户对象,因为用户不包括Enterpries查询。您必须在Enterprises查询中加入或包含用户表。就这样,;Entrepry.all.includes:user

您在Ruby中的第一个web应用程序在启动时进行SQL调用?你有没有从一些在线教程中复制一些代码?复制和运行您不理解的代码库不会有太大进展。@SilvioMayolo感谢您的评论,非常有用。