13장 - 인덱스와 제약조건

인덱스는 일반적인 데이터 테이블과 달리 특정 순서로 유지되는 특수 테이블이다.

다만 인덱스는 모든 데이터를 포함하는 대신, 행이 실제로 존재하는 위치에 대한 정보와 함께 데이터 테이블에서 행을 찾을 때 필요한 열만 포함한다.

따라서 인덱스의 역할은 테이블의 모든 행을 확인할 필요 없이 테이블의 행과 열의 서브셋을 쉽게 검색하는 것이다.


SHOW 명령어를 사용해서 특정 테이블의 모든 인덱스를 확인할 수 있다.

show index from table \G;

 

테이블을 생성할 때 명시하는 UNIQUE 제약 조건과 테이블을 생성한 후 설정하는 UNIQUE 인덱스는 어떤 차이가 있을까?

∴ 고유 인덱스는 더 유연한 옵션을 제공할 수 있고 쿼리 성능 최적화가 목표다.


인덱스가 많을수록 서버가 모든 스키마를 최신 상태로 유지하기 위해 더 많은 작업을 수행해야 하므로 속도가 느려진다.

데이터 웨어하우스의 경우에는 업무 시간 동안에만 인덱스가 중요하지만, 이후 데이터가 웨어하우스에 로드될 때 문제가 되는 인덱스를 삭제하고 다시 만드는 것이 일반적이다.


제약조건은 테이블의 하나 이상의 열에 적용되는 제한사항이다.

제약조건이 없으면 데이터베이스의 일관성이 의심스러울 수 있다.