index를 테이블의 특정 컬럼에 한개이상 주게 되면 index table이 따로 만들어 지고, 인덱스 컬럼의 로우값과 rowid값이 저장되며 row값은 정렬된 트리 구조로 저장시켜 두었다가 검색시 좀 더 빠르게 해당 데이터를 찾는데 도움을 준다.
rowid는 테이블을 생성하고 컬럼을 만든 후 데이터를 삽입하면 하나의 row가 생성되며, 이는 절대적인 주소를 가지게 되는데 이를 rowid라 한다
DML명령을 사용 할때는 원본 table은 물론, index table에도 데이터를
갱신시켜 주어야 하기 때문에, update, insert, delete명령을 쓸때 속도가
느려진다.
데이터가 많이 쌓일것이라고 예상되는 경우 혹은 많이 쌓여 있어 현재
화면에서 조회 속도가 너무 느릴때 인덱스 생성을 한다.
unique 인덱스 : 인덱스를 사용한 컬럼의 중복값들을 포함하지 않고 사용할 수 있는 장점이 있다.
create unique index 인덱스명
on 테이블(컬럼);
non-unique 인덱스 : 인덱스를 사용한 컬럼에 중복 데이터값을 가질 수 있다.
create index 인덱스명
on 테이블(컬럼);