파티셔닝의 자원 사용 효율 증가 관련 질문
"테이블 파티셔닝이 필요한 이유"중에 "자원 사용 효율 증가 및 쿼리 성능 향상"을 언급주셨습니다.
예를들어 최근에 저장된 데이터들 위주로 조회하는 경우 파티션 프루닝을 통해 최근 데이터만 접근하니까 효율적이라는 내용인데요, 효율적인 부분이 제가 생각했을 때 아래 2가지 정도인 것 같습니다.
테이블의 모든 row를 접근 안해도 되고 더 적은 데이터만 읽어도 됨
버퍼풀에 자주 사용되는 일부 데이터만 로드해도 됨
여기서 질문이 있습니다. 파티셔닝키를 대상으로 인덱스를 걸면, 마찬가지로 최근 데이터만 접근가능하고, 버퍼풀에 최근 데이터만 올라가지 않나요?
인덱스를 거는 방식이 파티셔닝을 사용하는 것에 비해 어떤 점에서 부족한가요?
Câu trả lời 2
1
안녕하세요.
말씀하신 것처럼 파티셔닝키에 인덱스를 생성하고 해당 인덱스를 통해 특정 범위에 해당하는 데이터만 주로 접근한다면 테이블을 파티셔닝하지 않더라도 자원을 어느정도 효율적으로 사용할 수 있을 것으로 예상합니다.
예를 들어, 로그 데이터가 저장되는 테이블에 생성 일자 컬럼(e.g. created_at)에만 인덱스를 생성하고 생성 일자 컬럼 기반으로만 데이터를 조회하는 경우가 이에 해당됩니다.
하지만 일반적으로는 이와 같이 아주 간단한 형태보다는 좀 더 복잡한 형태로 테이블을 사용하고, 테이블에서 다양한 쿼리들을 사용함에 따라 보조 인덱스들도 많이 존재하게 되는데요.
파티셔닝하지 않은 일반 테이블의 경우, 특히나 데이터가 많이 저장돼있다면 이와 같은 인덱스들에 대한 유지보수 비용이 파티셔닝하지 않은 테이블에 비해 클 수 있습니다. 일반 테이블에서는 하나로 통합된 거대한 인덱스로 존재하지만, 파티션 테이블의 경우 각 파티션 별로 인덱스가 나뉘어져 있기 때문입니다.
그래서 앞서 얘기드렸던 것과 같은 아주 간단한 형태로만 테이블을 사용하신다고 했을 때는, 데이터 삭제 등과 같은 부분을 고려해서 테이블 파티셔닝 적용 유무를 결정해주시면 좋을 것 같고, 좀 더 다양한 액세스 패턴으로 테이블을 사용하는 경우라면 주로 사용되는 패턴들을 중점적으로 고려해서 파티셔닝을 적용했을 때 얻을 수 있는 이점과 단점들을 비교해보고 최종적으로 결정해주시면 좋을 것 같습니다.
테이블에 파티셔닝을 적용하는 것이 좋을지는 쉽게 결정할 수 있는 경우도 있겠지만 그렇지 않은 경우들도 많고, 사실 실무에서는 DB를 운영/관리하고 있는 상황이나 기타 다른 요구사항 등 고려해야할 부분들이 많기 때문에 답변드린 내용이 다소 형식적이라고 느끼실 수 있을 것 같은데, 혹시 추가로 더 궁금한 부분 있으시면 언제든지 편하게 문의주세요.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
질문하신 내용에 대해 답변드릴 정보가 제공된 텍스트에는 없습니다.
제공된 정보는 Kafka 문서와 관련된 내용이며, 데이터베이스 파티셔닝이나 인덱스에 대한 구체적인 정보는 포함되어 있지 않습니다.
파티셔닝과 인덱스의 차이점에 대한 질문은 매우 좋은 질문이지만, 현재 정보로는 직접적인 답변을 드릴 수 없음을 양해 부탁드립니다.
데이터베이스 파티셔닝과 인덱스의 차이점에 관해서는 데이터베이스 관련 문서나 전문 서적을 참조하는 것이 좋을 것 같습니다.
라이브 운영중인 환경의 테이블에 인덱스 추가시 고려사항
0
21
2
JPA Repository 질문이 있습니다!
1
29
2
페이지네이션 처리를 쿼리에서 하는 방식 질문
1
31
1
DDD 는 마이바티스와 잘 맞지 않는건가요?
0
38
1
스프링부트 버전 문의드립니다.
0
28
1
Json 요청 처리
1
26
2
비동기 스레드풀 분리 이유와 Virtual Thread 전환 시 고려사항
0
26
1
gRPC 실무에서 질문
0
30
2
수강기간 연장
0
19
1
Build 관련 문제 (테스트 관련 문제)
0
30
1
unique index가 걸린 상황에서 s-lock, x-lock 질문
0
507
2
질문드립니다.
0
250
1
Real MySQL 시즌1 part 2 에피소드 16의 인덱스가 null인 컬럼을 포함한다는 것에 대한 질문
0
170
1
시퀸셜하게 증가하지 않는 PK의 insert성능도 문제가 있을까요?
0
222
2
INSERT에서 shared lock을 거는 이유 질문
1
434
3
안녕하세요. 인덱스 관련 질문 있습니다.
0
370
2
테이블이 1:N 구조에서 N쪽 테이블에 유니크 제약조건에 의한 오류발생 회피 방법이 뭘까요?
0
262
1
복합 인덱스의 컬럼중 선행 컬럼을 조건에서 누락해도 인덱스가 사용될 수도 있나요?
0
239
1
SKIP LOCKED 부분에서 INNER JOIN이 아니고 LEFT JOIN이 걸릴수 있다면
0
184
1
단일 인덱스 크기, 전체 인덱스 크기 구하는 계산식
0
235
2
primary key에 시간, uuid로 복합키로 설정하는 경우
0
325
2
에피소드 21에 궁금한 점이 있어 질문드립니다.
0
233
2
에피소드 17번에서 skip locked 질문이 있습니다.
0
264
1
Real MySQL 시즌 1 - Part 1 or Part2 영상에 나오는 자료 공유 가능하나요?
1
364
1

