인덱스를 태운다 라는게 무슨 말인지 궁금합니다 0 2 1,216

by 킹오 [Oracle 기초] [2020.05.22 10:01:19]


안녕하세요 신입개발자입니다.

회사에서 공부하면서 궁금한 게 생겼는데요,

 

일을 하다보면 쿼리에 인덱스를 태우네 마네.. 이소리 정말 많이 듣습니다.

인덱스는 쿼리속도를 향상시키기 위해 사용한다고 알고 있는데요,

이 인덱스는 기본적으로 key값은 기본적으로 해당 key 컬럼에 대한 인덱스가 생성이 되고, 

나머지는 수동으로 만들어 줘야 한다고 알고 있습니다.

 

예를 들어 A table의 key값이 name이고, 이 name에 대한 인덱스가 만들어졌다면..

해당 테이블을 select로 조회할 때, 인덱스를 태운다 라는건

select문에서 name을 조회한다는 뜻인가요??

그리고 인덱스를 태웠는지 안태웠는지 확인할 수 있는 방법이 있나요? 

 

제가 index에 대해 전혀 이해를 못 하고 있는 것 같은데 도움 부탁드립니다. 

 

 

 

 

by 이런잭쓴 [2020.05.22 11:23:14]

개념을 이해하기 쉽게
Key값을 name으로 이야기 했으니 비슷한 예로 설명 드리자면

학창시절 생활기록부 파일철이 있다고 했을때 맨앞장에 간략히 목차란게 있으면 찾기 훨씬 수월할겁니다.
이름1 2페이지      ||    이름2 3페이지
이름3 104페이지   ||    이름5 500페이지

인덱스란 이렇게 Key값과 맵핑되는 DataBlock정보를 가지고 있다고 보시면 됩니다.

1. 인덱스를 태운다는건 :
인덱스가 index (name)  으로 생성되었을 경우
select ~ from table where name = '홍길동';   (탐)
select ~ from table where id = 'hong0909';    (안탐)
  * 목차를 보고 찾는다는 것

인덱스가 안탄다는건
  * 목차를 안보고 1페이지부터 500페이지 까지 한장한장 확인하는것이라 생각하면 됩니다.


무조건이라 단정할순 없지만 테이블 데이터의 10%? 미만의 데이터를 조회시에는 인덱스를 타는게
빠릅니다.

2. 인덱스를 탈지 안탈지는 1)인덱스 생성시 설정한 컬럼정보와, 2)쿼리 실행계획을 보심으로 아실수 있습니다.

 

열심히 공부하세요~~~~!


by 킹오 [2020.05.22 15:41:29]

감사합니다! 제가 항상 짜고있던 쿼리도 인덱스를 태우고 있었네요 ㅎㅎ 사용하고 있지만 제대로 몰랐었는데 다시 이해가됩니다 감사합니다 ! 

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