CREATE VIEW Syntax
CREATE [OR REPLACE]
[ALGORITHM = {UNDEFINED|MERGE|TEMPTABLE}]
[DEFINER={USER|CURRENT_USER}]
[SQL SECURITY {DEFINER|INVOKER}]
VIEW view_name [(column list)]
AS select_statement
[WITH [CASCADE|LOCAL] CHECK OPTION]
[ALGORITHM = {UNDEFINED|MERGE|TEMPTABLE}]
[DEFINER={USER|CURRENT_USER}]
[SQL SECURITY {DEFINER|INVOKER}]
VIEW view_name [(column list)]
AS select_statement
[WITH [CASCADE|LOCAL] CHECK OPTION]
ALGORITHM 종류
- UNDEFINED : MySQL이 자체적으로 선택, 대부분 MERGE
- MERGE : 뷰와 포함된 쿼리를 효율적인 방식으로 Merge해서 사용
- TEMPTABLE : 뷰와 연결된 임시테이블을 만들고 사용, 인덱스를 전혀 사용 못함
뷰와 테이블의 차이
- 뷰는 정의시점에 고정, 테이블에 컬럼이 추가되어도 반영되지 않음
- SELECT문에서 system이나 user변수 사용 못함
- 뷰 정의시 임시테이블 참고 못함
- 트리거를 뷰에 연결시킬 수 없다
- 뷰정의시 ORVER BY를 포함할 수 있으나 VIEW사용시 ORDER BY를 지정하면 정의된 ORDER BY는 무시됨
댓글 없음:
댓글 쓰기