본문 바로가기
Q&A해결2024년 7월 25일2분 읽기

PostgreSQL 인덱스를 어떤 컬럼에 걸어야 할까요

개발자준호
조회 568댓글 4

PostgreSQL에서 쿼리가 느려지기 시작해서 인덱스를 걸려고 합니다. 테이블 구조는 이렇습니다:

CREATE TABLE orders (
  id SERIAL PRIMARY KEY,
  user_id INT NOT NULL,
  product_id INT NOT NULL,
  status VARCHAR(20),   -- pending, paid, shipped, delivered
  amount DECIMAL(10,2),
  created_at TIMESTAMP DEFAULT NOW()
);
-- 약 50만 건의 데이터

주로 사용하는 쿼리:

SELECT * FROM orders WHERE user_id = ? ORDER BY created_at DESC;
SELECT * FROM orders WHERE status = 'pending' AND created_at > NOW() - INTERVAL '7 days';
SELECT user_id, SUM(amount) FROM orders GROUP BY user_id;

어떤 컬럼에 인덱스를 걸어야 하고, 복합 인덱스는 언제 쓰는 건가요?

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록