본문 바로가기

DB(SQL)

[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는 지원을 안하는걸로 알고 있다. 자세한건 아래 링크 참고.

Oracle에서 MariaDB로 데이터베이스를 이동하는 경우 무엇을 알아야 합니까?Are there similar functions in MariaDB like functions in Oracle, like material view or snapshot....?

위 링크에 따르면 materialized view와 snapshot을 지원하지 않으며 Flexviews라는 도구를 사용하여 MariaDB의 로그를 사용하여 뷰(테이블)를 점진적으로 새로 고칩니다. 라는 답변이 있다.

Materialized View 특징

  • 저장공간 차지
  • 기본적으로 참조하는 테이블의 값이 바꼈을 경우 같이 변경되지 않는다. (옵션으로 갱신 주기를 설정할 수 있음)

6. Materialized View 더보기

 

참조 사이트

더보기

 

반응형