Я использую рельсы (5.1.4) + сиквел (5.9.0) gem + postgresql + rack-mini-profiler (последние) + сиквел-рельсы (1.0.1)
Я пытаюсь выяснить,почему мое приложение работает медленно и вот что я нашел на данный момент:
Я делаю простой запрос, чтобы получить сообщения @posts = Post.all
(примерно ~ 150 из них)
, и у меня есть частичное отображениеэто (упрощенно):
<% @posts.each do |post| %>
<%= post.title %>
<%= post.body %>
<% end %>
Теперь, если я посмотрю журнал info rack-mini-profilerler, я увижу странные
SELECT NULL;
запросы, которые замедляют рендеринг, но если я изменюсь.
метод :[]
<% @posts.each do |post| %>
<%= post[:title] %>
<%= post[:body] %>
<% end %>
что NULL
запросы исчезают и рендеринг становится намного быстрее (и title
, и body
- это просто поля в моей БД, больше ничего)
Почему?Это то, что мне нужно знать о sequel
драгоценном камне, и я не буду использовать instance.method
в будущем в этих случаях, или я что-то упустил?
UPD
если я попробую запрос с консоли, я получу это:
> 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
что за странный первый фантомный запрос?как я могу отладить и разбить его?
Спасибо