mock_sobes
← БД — EXPLAIN ANALYZE (PostgreSQL)
middle correct_vs_wrong #33
Запрос медленный. Какой EXPLAIN-вывод указывает на проблему, и какой выглядит нормально?
Вариант 1
EXPLAIN (ANALYZE, BUFFERS)
SELECT * FROM events WHERE user_id = 42 AND created_at > NOW() - INTERVAL '1 day';

Seq Scan on events  (cost=0.00..152340.00 rows=12 width=120)
                    (actual time=5.234..2845.012 rows=8 loops=1)
  Filter: ((user_id = 42) AND (created_at > (now() - '1 day'::interval)))
  Rows Removed by Filter: 9999992
  Buffers: shared read=89134
Planning Time: 0.123 ms
Execution Time: 2845.567 ms
Вариант 2
EXPLAIN (ANALYZE, BUFFERS)
SELECT * FROM events WHERE user_id = 42 AND created_at > NOW() - INTERVAL '1 day';

Index Scan using ix_events_user_created on events
                    (cost=0.42..23.45 rows=8 width=120)
                    (actual time=0.023..0.067 rows=8 loops=1)
  Index Cond: ((user_id = 42) AND (created_at > (now() - '1 day'::interval)))
  Buffers: shared hit=12
Planning Time: 0.089 ms
Execution Time: 0.123 ms
Чтобы решить вопрос и сохранить попытку — войди.