“내 Postgres query가 왜 느릴까? Connection string은 ~/.pg-creds에 있어.”
MoClaw가 하는 일
- 1 ~/.pg-creds를 읽습니다(credentials가 포함되어 있으므로 먼저 확인을 요청합니다).
- 2 psql로 연결하고 사용자가 표시한 query에 EXPLAIN ANALYZE를 실행합니다.
- 3 (user_id, created_at)에 index가 있으면 도움이 될 4M rows에 대한 sequential scan을 찾아냅니다.
- 4 바로 붙여 넣을 수 있도록 CREATE INDEX statement와 rollback statement를 생성합니다.
다음처럼 답합니다. '찾았습니다. planner가 (user_id, created_at)에 index가 없어 sequential scan을 하고 있습니다. composite index를 추가하면 cost가 84,000에서 12로 떨어집니다. CREATE INDEX statement와 필요할 때 쓸 rollback을 함께 드립니다.' 사용자가 이를 적용하면 다음 query는 14ms에 실행됩니다.