[DB] view (view/MView/snapshot)
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 더보기
참조 사이트
https://mariadb.com/kb/en/create-view/
CREATE VIEW
Create or replace a view.
mariadb.com
[MariaDB] 마리아DB 테이블 - 뷰 view (MySQL)
[MariaDB] 마리아DB 테이블 - 뷰 view (MySQL) 뷰(view)는 일반 사용자 입장에서는 테이블과 동일하게 사용하는 개체입니다. 뷰는 select 문으로 만들어진 테이블로 생각하면 됩니다. 뷰는 기본적으로 읽기
reddb.tistory.com
https://m.cafe.daum.net/bboybeatbox/8b46/3
MySQL(MariaDB)의 Materialized Views
원본: http://www.fromdual.com/mysql-materialized-views#what_isMySQL의 Materialized ViewsMaterialized View란? Materialized View(MV)는 쿼리 결과가 미리 저장된 뷰이다. Materialized View의 결과와 일반 VIEW의 결과는 다르다.Mat
m.cafe.daum.net