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