wally_e
32
2020-09-13 15:52:09
3
171

VIEW는 실행결과를 데이터베이스에 저장하나요?


선배님들 안녕하세요.


얼마전 선임에게서 들은 내용인데

VIEW의 조회속도가 빠른이유는 한번실행한 SQL의 결과를 DB에 저장해놓기 때문이라고 들었습니다.

그리고 매번 CUD가 일어날때마다 해당 VIEW의 조회내용을 재구성하기때문에 CUD가 자주있는 테이블에는 적합하지 않다고 말했습니다.


그런데 제가 인터넷에 찾아본 결과, VIEW는 실행된 후 물리적으로 저장이 안된다고 나오더라구요.

어떤 말이 맞는 걸까요 ㅠㅠ?


1.비슷한 개념으로 오라클의  materialized view등이 있는것같은데 이를 제가 착각한걸까요?

2.만약 VIEW가 물리적으로 저장이 안된다면 VIEW의 조회속도가 빠른 이유는 무엇인가요?



*아래는 제가 찾아본 사이트와 사이트에서 본 내용의 일부분입니다*

http://www.gurubee.net/lecture/2475

-->물리적인 저장공간을 가지지 않고 테이블과 거의 동등하게 취급할 수 있는 논리적인 집합.

https://jhkang-tech.tistory.com/47

--> 뷰테이블을 생성하면 장점은 매번 복잡한 쿼리문이 돌지 않고 이미 만들어진 뷰테이블에서 가져오기 때문에 속도가 빨라진다는 장점 

0
  • 답변 3

  • 하얀깃털
    293
    2020-09-13 16:05:04
    신기하네요. ajax로 db 연동하는게 아닌 경우 그냥 view에서 db 연동이 가능한가보네욤...
  • jslovers
    2k
    2020-09-13 16:49:29 작성 2020-09-13 16:57:06 수정됨

    Views are a logical virtual table created by “select query” but the result is not stored anywhere in the disk and every time we need to fire the query when we need data, so always we get updated or latest data from original tables.

    Materialized views are also the logical view of our data-driven by the select query but the result of the query will get stored in the table or disk, also the definition of the query will also store in the database.

    일반적으로 view는 저장되지 않지만 Materialized view라는건 저장됩니다.


    PS. View also allows storing the definition of the query in the database itself.

    대신 데이터베이스 자체에 쿼리 정의는 저장할 수 있습니다.


  • wally_e
    32
    2020-09-13 20:52:13

    jslovers 님 감사합니다.

    많은 도움이 되었습니다 ^^..

    혹시 죄송한데 하나만 더 물어봐도될까요??


    검색을 하다가 인덱싱뷰 라는것을 알게되었고 ,이 인덱싱뷰는 데이터를 저장하고 있다는 글을  보았습니다.

    이 인덱싱뷰라는 개념과 Materialized views는 비슷한 개념이라고 봐도 될까요??  


    /*참고한 페이지입니다*/

    https://m.blog.naver.com/PostView.nhn?blogId=friendding&logNo=60195983754&proxyReferer=https:%2F%2Fwww.google.co.kr%2F

  • 로그인을 하시면 답변 을 등록할 수 있습니다.