[MySQL] 인덱스, 뷰

Jaehyeong Kwon·2022년 8월 8일
0

데이터베이스

목록 보기
5/10

1. 인덱스

테이블에 여러 데이터들이 무작위로 섞여 있으면 조회하는데 시간이 오래 걸린다. 이 때 검색 알고리즘을 사용하는 인덱스를 이용하면 검색 속도를 향상시킬 수 있다.

1) 인덱스 테이블 생성
인덱스 테이블을 생성하는 명렁어의 기본 구조는 CREATE INDEX 인덱스테이블명 ON 테이블(컬럼); 입니다.

  • products 테이블의 no 컬럼을 기준으로 인덱스 테이블을 생성했으니, products 테이블을 조회할 때 no 컬럼을 기준으로 검색해야 성능 상승을 기대해볼 수 있습니다.

2) 인덱스 테이블 조회
인덱스 테이블을 조회하는 명령어의 기본 구조는 SHOW INDEXES FROM 테이블; 입니다.

3) 인덱스 테이블 삭제
인덱스 테이블을 삭제하는 명령어의 기본 구조는 DROP INDEX 인덱스테이블명 ON 테이블; 입니다.

  • 일반 테이블을 삭제하는 명령어인 DROP 명령어를 실행하면, 테이블과 관련된 index table도 같이 삭제됩니다.

2. 뷰(View)

뷰는 SELECT의 결과를 객체로 만드는 기법입니다. 뷰는 SELECT의 결과를 객체로 만드는 기법입니다. 즉, SELECT의 결과를 테이블로 만들어서 테이블처럼 사용할 수 있는데, 뷰 테이블이라 한다.

뷰 테이블은 실제로 존재하는 테이블이 아닌 가상의 테이블입니다.
그래서 뷰는 저장 공간이 없기 때문에 뷰 테이블의 데이터를 삽입, 수정, 삭제를 하려면 조건으로 PK 컬럼을 반드시 지정해야 한다는 조건이 있습니다.

1) 뷰 테이블 생성
뷰 테이블을 생성하는 명령어의 기본 구조는 CREATE VIEW 뷰테이블명 AS (서브쿼리) 입니다. 서브쿼리의 결과를 데이터로 갖는다.

  • product에는 많은 컬럼이 있더라도 특정 컬럼들만 노출하므로 은닉확가 가능합니다.
  • 뷰는 SELECT 명령을 가상의 테이블로 만들어서 테이블처럼 사용할 수 있기 때문에 편리합니다. (객체의 재사용성)
  • 그러나, 뷰 테이블에서 컬럼의 자료형, 제약 조건들을 새롭게 지정할 수는 없습니다.

일반 테이블에서 SELECT 쿼리를 수행하는 것처럼 가상 테이블 products_view에서도 SELECT 명령을 실행할 수 있습니다.

2) 뷰 삭제
뷰 테이블을 삭제하는 명령어의 기본 구조는 DROP VIEW 뷰테이블명입니다.

profile
나무와 같이 성장하는 사람

0개의 댓글