Day38 - index

2021. 4. 8. 19:14Oracle 공부

이번에는 index에 대해 알아 봅시다

 

index

index 는 데이터베이스 내에서 원하는 레코드(행)를 빠르게 찾을 수 있도록 만들어진 데이터 구조 입니다.

 

index 는 primary key, unique 제약조건을 사용할 때 자동으로 생성되고, 또는 수동으로 직접 생성할 수 있습니다.


index 는 인덱스를 저장하는 추가적인 공간을 가지고 생성되고, 조회를 빠르게 합니다.
다만 추가,수정,삭제 가 빈번하게 일어나는 컬럼에 적용하면 오히려 성능부하를 일으킬 수 있습니다.

 

즉. index 는 조회를 빠르게 해줍니다.

기본키(PK) , 유니크키(unique) 를 생성할 경우, 자동 생성이 됩니다.

 

만약 어떤 데이터베이스의 성능이 좋지 않다면, 조회를 index 기준으로 해주었는지 확인 해주어야 합니다.

 

해당 코드를 실행시키고 F10 을 눌러 봅시다.

이렇게 full ( 전부 조회 ) 한 후 값을 가져온 것을 확인 할 수 있습니다.

그런데, 인덱스를 가지고 조회를 한다면?

더 빠르게 조회를 할 수 있습니다.

 

인덱스 수동 생성

 

 

인덱스 삭제

index는 삭제되더라도 테이블에 전혀 영향을 미치지 않습니다.

시퀀스와는 다르죠?

 

인덱스를 사용한 조회

index를 사용해서 조회를 해봅시다.

index를 사용해서 조회를 할 때는 hint 를 사용하면 되는데,

hint는 /*+ 명령문 */ 으로 만들어 주면 됩니다.

 

먼저, 간단한 테이블을 만들고, 데이터를 추가 시켜 주겠습니다.

테이블과 시퀀스를 만들고, 시퀀스를 이용해서 데이터를 추가 했습니다. 100까지 추가해주세요

그리고, COMMIT 까지 해줍니다.

 

- T-BOARD 에 BNO 를 내림차순한 걸 순서대로 41 부터 50 까지만 조회 하려면?

 

요렇게 했었어야 했죠?

이걸 index의 hint를 사용해 봅시다.

이렇게, SELECT 다음에 /*+ index를 사용한 hint구문 */ 을 작성해주면 됩니다.

※ 주의 /* 다음 바로 + 를 붙여야 합니다.

 

이해가 잘 안갈 때는, 서브쿼리에 있는 구문만 빼서 보도록 합시다.

 

이렇게 인덱스에 대해서 알아 보았습니다.

 

고생하셨습니다.

'Oracle 공부' 카테고리의 다른 글

Day39 - 데이터 모델링  (0) 2021.04.12
Day39 - 권한, 사용자 계정 생성, 수정, 삭제  (0) 2021.04.09
Day38 - squence  (0) 2021.04.08
Day38 - view  (0) 2021.04.08
Day37 - 제약조건  (0) 2021.04.07