index key는 읽기와 삽입/삭제 비율이 어느정도일 때 쓰는게 좋은가요? 0 2 875

by 음미 [SQL Query] [2018.07.25 14:04:29]


index키를 구성하려고 여기저기 자료를 찾아보다가 의문이 들어서 질문합니다!

index키가 있으면 검색은 빨라지는데 삽입이나 삭제가 있을 때에는 인덱스 삽입 후 다시 정렬하는 작업이 있잖아요. 
그래서 검색 비중이 높은가? 혹은 삽입/삭제가 빈번하게 있는가? 에 따라 다르게 판단해야 한다고 알고 있는데요. 

삽입/삭제와 검색의 비율이 어느정도 되면 key index를 사용하는게 좋다 하는게 있나요? 예를들어 검색과 삽입/삭제가 거의 비슷하게 일어난다면 index key를 사용하지 않는것이 좋은가요? 

여기 너무 좋아요. 좋은 자료도 많구요. 감사합니다.

by 아발란체 [2018.07.26 10:40:24]

인덱스가 없는 테이블은 일반적인 테이블이 아닙니다. 기본키를 만들어도 인덱스가 생기니까용. >ㅅ<)/

인덱스를 너무 많이 만들어도 문제지만 자주 요청이 있는 검색 조건에 따라 적절하게 만들어 주는 것이 좋습니다.

또한 인덱스를 많이 만들면 조회 성능은 나빠진다고 보기 힘드나

조회를 제외한 입력/수정/삭제는 성능이 나빠집니다.

그러나 입력/수정/삭제 경우 대량 단위로 작업이 일어나지 않고 단건 단위로 대부분 일량이 발생하거나 OLTP 환경에서는 대부분 부하가 많지 않습니다.

정리하여

삽입/삭제 적정 사용 손익분기점이 없습니다. 조회 중심으로 요청이 많은 항목 기준으로 인덱스 잡으시면 됩니다.

검색(조회)과 삽입/삭제 비슷한 비율이여도 검색쪽편만 보고 조회 조건으로 인덱스 만들어주시는 것이 좋습니다.

조회는 다건이 기준이고

삽입/삭제는 단건이 일반전 기준입니다.

단 삽입/삭제 작업이 일어나는 단위가 1건 단위가 아니라 천건 단위 등 대량이라면 

중복이거나 불필요한 인덱스는 정리를 해줘야 입력 성능이 좋아집니다.


by 음미 [2018.07.26 16:19:34]

답변감사합니다. 이런걸 여쭤볼때마다 SELECT 문을 할 떄 실제로 어떻게 찾고 이런  원리 자체를 공부해보는게 좋겠다는 생각이 드네요 ㅜㅜ

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입