我使用Rails(5.1.4)+Sequel(5.9.0)gem+PostgreSQL+Rack Mini Profiler(最新)+Sequel Rails(1.0.1)
我试着找出我的应用程序速度慢的原因,现在我发现:
我做了一个简单的查询来获取帖子
@posts = Post.all
(大约150个)
我有一部分要渲染(简化):
<% @posts.each do |post| %>
<%= post.title %>
<%= post.body %>
<% end %>
现在,如果我看一下InfoRack Mini Profiler的日志,我会发现一些奇怪的
SELECT NULL;
请求减慢呈现速度,但如果我更改
.
方法到
:[]
<% @posts.each do |post| %>
<%= post[:title] %>
<%= post[:body] %>
<% end %>
那个
NULL
查询消失,渲染变得更快(两者
title
和
body
只是我数据库里的字段,没有别的)
为什么?这是我需要知道的事情吗
sequel
宝石和我不用
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
第一个奇怪的幻影请求是什么?如何调试和粉碎它?
谢谢