Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[oneseo] 원서 테이블 컬럼 인덱스 생성 #106

Merged
merged 5 commits into from
Aug 8, 2024

Conversation

jangwooooo
Copy link
Collaborator

@jangwooooo jangwooooo commented Jul 29, 2024

개요

tb_oneseo 테이블의 applied_screening, real_oneseo_arrived_yn 컬럼에 복합인덱스를 생성하였습니다.

본문

원서 검색 시 applied_screening, real_oneseo_arrived_yn 컬럼이 조건식에 자주 사용되어 인덱스를 걸기에 적합한 컬럼이라고 판단되어, 인덱싱 하였습니다.
복합인덱스 순서는 1: applied_screening, 2: real_oneseo_arrived_yn 입니다.

기타

해당 pr의 작업내용은 도메인 변경사항에 따라 변경되어 pr 제목과 본문내용도 변경되었습니다.
따라 아래 코멘트와 pr내용의 불일치가 존재합니다

@jangwooooo jangwooooo added priority: high 우선순위 높음 fix 기능 보완 labels Jul 29, 2024
@jangwooooo jangwooooo self-assigned this Jul 29, 2024
@tlsgmltjd
Copy link
Member

인덱스 거신 컬럼은 YES or NO 둘 중에 하나의 값만 가지는 컬럼으로 보입니다. 해당 컬럼은 카디널리티가 낮기 때문에 풀스캔과 맞먹을 것이라 생각됩니다. 그렇게 때문에 인덱스를 거셔도 유의미한 성능개선이 있지는 않을것이라고 예상됩니다.
인덱스를 사용하면서 추가로 저장공간을 차지하는 트레이드 오프가 발생할것 같은데 의견 부탁드립니다!

@jangwooooo
Copy link
Collaborator Author

인덱스 거신 컬럼은 YES or NO 둘 중에 하나의 값만 가지는 컬럼으로 보입니다. 해당 컬럼은 카디널리티가 낮기 때문에 풀스캔과 맞먹을 것이라 생각됩니다. 그렇게 때문에 인덱스를 거셔도 유의미한 성능개선이 있지는 않을것이라고 예상됩니다. 인덱스를 사용하면서 추가로 저장공간을 차지하는 트레이드 오프가 발생할것 같은데 의견 부탁드립니다!

카디널리티가 낮지만 풀스캔과 맞먹는다고 보는 건 힘들 것 같아요. 원서 접수 기간 중 시간이 흐를수록 YES로 설정된 데이터가 늘어나면서 인덱스의 효과가 점차 줄어들 가능성은 있지만, 초중반 기간에는 충분히 성능 향상을 기대할 수 있을 것 같아요. 특히, final_submitted_yn 컬럼은 어드민 페이지에서 원서를 검색하는 쿼리에 고정적으로 사용되므로, 인덱스를 통해 검색 성능을 개선할 수 있다고 봅니다. 추가적인 저장공간에 대한 부분에서는, 현재 인덱스가 걸린 다른 컬럼이 없는 상황이므로 큰 문제가 되지 않을 것 같아요

추가적인 의견 있으시면 말씀해주세요 !

@tlsgmltjd
Copy link
Member

인덱스 생성으로 메모리 할애가 크기도 하고 데이터 수정으로 인덱스 b+tree가 재배치 되기 때문에 큰 이점이 없는 작업이라 생각해 불필요하지 않나 싶었지만, 지원자 수가 그리 많이 않을것 같아 메모리 낭비는 적을거라 생각되어 인덱싱 하는것도 나쁘지 않다고 생각됩니다!

@tlsgmltjd
Copy link
Member

screening 컬럼도 인덱싱 하는것은 어떠한지 의견드립니다!

@jangwooooo
Copy link
Collaborator Author

인덱스 생성으로 메모리 할애가 크기도 하고 데이터 수정으로 인덱스 b+tree가 재배치 되기 때문에 큰 이점이 없는 작업이라 생각해 불필요하지 않나 싶었지만, 지원자 수가 그리 많이 않을것 같아 메모리 낭비는 적을거라 생각되어 인덱싱 하는것도 나쁘지 않다고 생각됩니다!

네네 인덱스가 추가로 소모하는 저장공간은 현재 상황에서는 큰 문제가 되지 않을 것 같습니다. 사용 패턴을 고려할 때, 오히려 인덱스를 통한 성능 개선이 충분히 가능할 것으로 예상됩니다. 이후 인덱스 유지 관리에 부담이 느껴지면 그때 다시 검토해보면 될 것 같아요

@jangwooooo jangwooooo changed the title [oneseo] 원서 최종제출여부 컬럼 인덱스 생성 [oneseo] 원서 테이블 컬럼 인덱스 생성 Aug 8, 2024
Copy link
Member

@tlsgmltjd tlsgmltjd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다!

@jangwooooo jangwooooo merged commit 927fbe6 into develop Aug 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fix 기능 보완 priority: high 우선순위 높음
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants