본문 바로가기

View4

MySQL Ver. 5.7 에서 View 기능 개선 1. View에 포함된 Order by 절 적용 방법 MySQL Ver. 5.7부터 View에 포함된 Order by의 내용이 Outer Query에 적용되는 기준이 바뀌었다. MySQL Ver. 5.6 까지는 가능하면 Outer Query의 결과에 Order by 절의 내용이 적용되게 하였다. 하지만, Outer Query에서 해당 순서가 거의 의미가 없는 경우가 많았다. 그래서 이제는 다음의 경우에 View안에 포함된 Order by 내용을 무시하게끔 데이터 추출 작업이 진행된다. 조건은 다음과 같다. -- 집합 함수를 사용하지 않는다. -- 2개 이상의 테이블을 참조한다. 테스트를 위해 다음과 같은 View를 만들어보자. create view v1 as select * from titles wher.. 2016. 2. 29.
MySQL Ver. 5.7 에서 Derived Tables 동작 방식 Derived Table 의 정의 1. 쿼리의 from 절에 서브쿼리로 만들어진 임시 테이블2. 쿼리 실행 시 내부 작업으로 인해 임시적으로 생성되는 서브쿼리 ==> Subquery in From Clause3. View == Named Derived Table MySQL Ver. 5.6 까지의 처리 방식 1. View : Outer Query 와 병합되어 처리됨. 2. Dervied Table : Outer Query와 병합되지 못하고 Temporary Table과 같이 나누어서 처리됨. 2번 방식의 문제점 1. materialized Temporary Table을 따로 만들어야 하므로 시간과 비용이 많이 든다. 2. Outer Query와 Derived Table사이에 미리 조건을 공유하여 필터링할 .. 2016. 2. 26.
Derived Tables in MySQL5.7 이 문서는 오라클의 MySQL서버 팀 블로그에 올라온 글을 번역하여 정리한 문서입니다. http://mysqlserverteam.com/derived-tables-in-mysql-5-7/ MySQL5.7 부터 derived Table과 View에 대한 성능 개선이 많이 이루어졌다. 여기에서는 어떻게 성능개선이 이루어졌는지 알아보려고 한다. Derived Table: 쿼리가 실행될 때, from절 아래에 서브쿼리로 만들어진 테이블을 말한다. 또는 쿼리 실행 시 내부 작업으로 인해 임시적으로 생성되는 쿼리도 Derived Table이라고 한다. 간단하게는 "subquery in From classe"로 생각하면 된다. Derived Table은 View로 변경하는 것도 가능하다. 그래서, View를 name.. 2016. 1. 15.
8. alter 하지 않고 view의 definer 수정하기 이번에 MySQL News Letter에 소개된 글로 다음의 글을 번역하여 정리한 것이다. http://palominodb.com/blog/2011/10/05/change-views-definer-without-alter-view-how-fix-thousands-views MySQL의 View는 보안을 위해 DEFINER와 SQL SECURITY 설정을 통해 VIEW의 접근을 관리한다. 만약 'user123'@'192.168.1.%'라는 계정을 사용하여 다음의 구문을 실행한다고 가정하자. CREATE VUEW view1 SELECT * FROM tbl1; 그럼 다음과 같은 구문으로 생성되어 저장된다. CREATE ALGORITHM=UNDEFINED DEFINER='user123'@'192.168.1.%'.. 2011. 10. 23.