반응형
0. What is view? 뷰란?
select 문으로 만들어진 논리적인 테이블 즉,가상 테이블?데이터?로 생각하면 됩니다.
oracle, mysql, maria db 등 기본적으로 제공을 해주는 듯 하다.
view 특징
- 저장공간 안먹음
- select절로 이루어졌기 때문에 참조하는 테이블의 값이 바꼈을 경우 같이 변경된다.
- select 절 돌리는거랑 성능 거의 비슷 (즉각적으로 결과값 안나옴)
- (위와같은 이유로) 인덱스 잘 타게 해놔야함
- (위와같은 이유로) 그룹함수 등 쓰면 등짝 맞을 수 있음
- 초보자한테 잘못 알려줬다가 피날 수 있음
1. 뷰 생성 (create view)
USE DB명; -- 사용할 DB명
CREATE VIEW [view_name]
AS
SELECT t.test_column1 AS test_column1
, sum(t.test_sum_column) AS test_sum
FROM test AS t
WHERE t.test_where_column = 'test'
GROUP BY t.test_column1
SELECT test_column1, test_sum FROM [view_name];
2. 뷰 정보 확인(DESCRIBE)
DESCRIBE [view_name];
3. 뷰 소스코드확인 (SHOW CREATE VIEW)
SHOW CREATE VIEW [view_name];
4. 뷰 삭제 (drop view)
DROP VIEW [view_name];
5. Materialized View(MV/Mview)[mv/snapshot/flexview]
view와 다르게 물리적인 테이블로 구성되는 view이다.
mysql 및 mariadb는 지원을 안하는걸로 알고 있다. 자세한건 아래 링크 참고.
위 링크에 따르면 materialized view와 snapshot을 지원하지 않으며 Flexviews라는 도구를 사용하여 MariaDB의 로그를 사용하여 뷰(테이블)를 점진적으로 새로 고칩니다. 라는 답변이 있다.
Materialized View 특징
- 저장공간 차지
- 기본적으로 참조하는 테이블의 값이 바꼈을 경우 같이 변경되지 않는다. (옵션으로 갱신 주기를 설정할 수 있음)
6. Materialized View 더보기
참조 사이트
반응형
'DB(SQL)' 카테고리의 다른 글
[공부해야할것] Database 단편화 (feat. DB 서버 성능저하) (0) | 2022.05.02 |
---|---|
[DB] Materialized View (구체화 뷰/ 물리적 뷰) (0) | 2021.10.06 |
[DB] 문자열 연결 / 이어붙이기 (0) | 2021.09.17 |
[DB] 1701 Error constraint (0) | 2021.09.01 |
[DB] 테이블 구성시 참고 (0) | 2021.08.20 |