0

我使用 Rails 5.1.4、Sequel 5.9.0、Postgre、rack-mini-profiler(最新)、sequel-rails 1.0.1。

我试图弄清楚为什么我的应用程序很慢。这是我发现的。

我做了一个简单的查询来获取帖子使用

@posts = Post.all

并得到〜150。

我有一部分要渲染它。这是简化的:

<% @posts.each do |post| %>
  <%= post.title %>
  <%= post.body %>
<% end %>

当我查看 rack-mini-profiler 的日志时,我看到了

SELECT NULL; 

请求减慢渲染,但如果我将.方法更改为:[]

<% @posts.each do |post| %>
  <%= post[:title] %>
  <%= post[:body] %>
<% end %>

查询消失,NULL渲染变得更快。(两者都是我数据库titlebody的字段,仅此而已。)

为什么?这是我需要知道的关于续集的事情吗?在那种情况下我不应该instance.method在未来使用,或者我错过了什么?

当我尝试来自控制台的请求时,我得到了:

> Post.first
D, [2018-06-09T22:46:41.277269 #96772] DEBUG -- : (0.001008s) SELECT NULL
D, [2018-06-09T22:46:41.277952 #96772] DEBUG -- : (0.000362s) SELECT * FROM "posts" LIMIT 1

第一个幻像请求是什么?如何调试和删除它?

4

1 回答 1

0

最后,我发现了问题:

这是一个:connection_validator 插件

绕过这个插件,除非你真的 - 真的需要它!

于 2018-06-09T23:20:15.450 回答