index(DB)에 대해(+pk, fk)

인덱스는 DB의 성능의 향상을 위해 쓰인다.

DB에서 테이블을 생성하거나 생성한 이후에도 인덱스를 설정할 수 있다. 혹은 pk를 설정하면 자동으로 걸리기도 한다.(대부분의 데이터베이스에서)

인덱스가 설정되어 있지 않으면 DB는 풀 스캔을 실행하는데, 이는 데이터 크기가 커질수록 낭비가 큰 방법이다.

데이터를 추가할 때마다 인덱스도 추가해야 하므로, 추가 혹은 변경보다는 검색이 많이 되는 컬럼에 인덱스를 걸어주는 것이 좋다.

인덱스와 pk의 차이점 : pk는 유일성을 반드시 보장해야 한다. 즉 열 간에 pk값이 중복되면 안되지만 인덱스는 중복을 해도 된다.

foreign key 는 테이블에 잘못된 데이터를 넣는 것을 방지하기 위한 제한조건이다. 테이블 중 하나 이상의 컬럼에 foreign키 조건을 걸 수 있는데, 조건을 걸 때 참고할 값으로 부모테이블의 pk를 설정하게 된다. 이후 데이터를 수정하거나 추가할 때 foreign키가 설정된 컬럼에다 부모테이블의 pk컬럼에 없는 값을 추가하려고 하면 불가능하게 되는 것이다.

unique index : 중복되지 않는 값을 가져야하는 인덱스. 다만 null은 가능.

pk : unique index + nonNull

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중