File tree Expand file tree Collapse file tree 2 files changed +59
-0
lines changed
Expand file tree Collapse file tree 2 files changed +59
-0
lines changed Original file line number Diff line number Diff line change 1+ -- 1. 인덱스 생성
2+ CREATE INDEX idx_event_members_event_member
3+ ON event_members(event_id, member_id);
4+
5+ # CREATE INDEX idx_event_members_event_activated
6+ # ON event_members(event_id, confirmed);
7+
8+ -- 2. 인덱스 확인 (MySQL에서는 SHOW INDEX 사용)
9+ SHOW INDEX FROM event_members;
10+
11+ -- 3. 쿼리 성능 계획 확인
12+ EXPLAIN
13+ SELECT *
14+ FROM event_members
15+ WHERE event_id = 1
16+ AND member_id = ' GOOGLE_115434652372556552718'
17+ LIMIT 1 ;
18+
19+ -- mysql 은 전체 강제 인덱싱 사용 옵션이 따로 없음.
20+
21+ -- FORCE INDEX로 인덱스 유도 가능
22+ EXPLAIN
23+ SELECT *
24+ FROM event_members FORCE INDEX (idx_event_members_event_member)
25+ WHERE event_id = 1 AND member_id = ' GOOGLE_115434652372556552718'
26+ LIMIT 1 ;
27+
28+
29+ SHOW INDEX FROM event_members;
Original file line number Diff line number Diff line change 1+ -- 1. 인덱스 생성
2+ CREATE INDEX IF NOT EXISTS idx_event_members_event_member
3+ ON event_members(event_id, member_id);
4+
5+ -- CREATE INDEX IF NOT EXISTS idx_event_members_event_activated
6+ -- ON event_members(event_id, confirmed);
7+
8+ -- 2. 인덱스 확인 (스키마 명시)
9+ SELECT *
10+ FROM pg_catalog .pg_indexes
11+ WHERE tablename = ' event_members' ;
12+
13+ -- 3. 쿼리 성능 계획 확인
14+ EXPLAIN
15+ SELECT *
16+ FROM event_members
17+ WHERE event_id = 1
18+ AND member_id = ' GOOGLE_115434652372556552718'
19+ LIMIT 1 ;
20+
21+ -- 실제 쿼리에 인덱스 사용되는지 확인. 지금 row 1개라 자동으로 seq scan(full scan)
22+ EXPLAIN ANALYZE
23+ SELECT *
24+ FROM event_members
25+ WHERE event_id = 1
26+ AND member_id = ' GOOGLE_115434652372556552718'
27+ LIMIT 1 ;
28+
29+ -- 강제 인덱스 사용 유도
30+ SET enable_seqscan = OFF;
You can’t perform that action at this time.
0 commit comments