본문 바로가기

데이터베이스/오라클

(18)
2. Index란 1. 인덱스(Index)란? [ 인덱스(index)란? ] 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 만약 우리가 책에서 원하는 내용을 찾는다고 하면, 책의 모든 페이지를 찾아 보는것은 오랜 시간이 걸린다. 그렇기 때문에 책의 저자들은 책의 맨 앞 또는 맨 뒤에 색인을 추가하는데, 데이터베이스의 index는 책의 색인과 같다. 데이터베이스에서도 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있도록 돕고 있다. 인덱스를 활용하면, 데이터를 조회하는 SELECT 외에도 UPDATE나 DELETE의 성능이 함께 향상된다. 그러한 이유는 해당 연산을 수행하려..
1. 인덱스에 대한 고찰 Spring boot quartz library를 사용하여 돌리는 Batch파일에 문제가 문제가 발생하였다. 결론부터 말하자면 서비스에 대한 수정을 요구한다. 해당 서비스를 수정하며 Select Query문을 보게 되었고, Plan을 돌려본 결과 2가지 문제에 대해 생각했다. 1년이 지난 회원을 계산하여 휴면계정으로 전환하는 배치였는데, 최근접속일시를 기준으로 접속여부를 판단했다. 중요한 부분은 최근접속일시가 null인 경우가 포함이 되어있다는 것과, varchar타입으로 되어 있다보니 Date타입으로 형변환을 하다보니 Index를 타지를 못하는 경우다. 1. 기존 Query에 대한 튜닝 Index를 태우기 위해서는 컬럼에 대한 가공은 해서는 안된다. 예를 들어 SUBSTRING을 사용한다는 경우 말이다..