2017.09.29

마이SQL 8.0 베타 공개··· 유니코드·JSON 등 개선

Serdar Yegulalp | InfoWorld
마이SQL은 많은 웹 애플리케이션 스택에 표준 요소로 사용되는 유명 오픈소스 데이터베이스다. 최근 마이SQL 8.0 버전의 첫 RC 버전이 공개됐다. 주요 기능은 다음과 같다.

- 유니코드 9.0용 퍼스크 클래스 지원
- 윈도우 함수와 회귀 SQL 문법 지원
- 네이티브 JSON 데이터와 문서 스토어 기능 지원 강화

8.0 버전을 내놓으면서 마이SQL은 기존 5.5버전에서 숫자를 많이 건너뛰었다. 6.0버전은 좋은 평가를 받지 못했고 7.0은 마이SQL 클러스터링 버전이었다. 마이SQL은 8.0 발표 일정을 못박지 않았지만 기본적으로 매 18~24개월마다 새로운 버전을 내놓는다. 가장 최근의 발표가 2015년 10월 21일에 나온 마이SQL 5.7이었으므로, 마이SQL 8.0의 최종 버전은 오는 10월 경 나올 것으로 보인다.



표준 유니코드 관련 문제 해결
이번 마이SQL 8.0 버전의 가장 큰 변화이자 논쟁거리는 기본값으로 유니코드를 적용하는 것이다. 마이SQL은 유니코드 관련해서 꽤 오랫동안 골치를 앓았다. 마이SQL 8.0에서 이 문제 중 상당수가 해결될 것으로 보인다.

먼저 마이SQL 8.0은 더이상 기본 인코딩으로 latin1을 사용할 수 없다. 대신 utf8mb4을 기본 캐릭터로 추천한다. utf8mb4은 현재 비판을 받고 있는 utf8mb3 캐릭터 세트보다 더 빠르고 더 유연한 데이터 정렬을 지원한다. 또한, 향상된 유니코드는 넌웨스턴(non-Western) 문자 세트는 물론 이모티콘도 지원할 예정이다.

윈도우 함수 지원
마이SQL 8.0은 윈도우 함수를 지원한다. 쿼리에서 개별 열에 접근을 허용하면서도 여러 열에 걸쳐 총량을 계산한다. 기존 마이SQL에서도 데이터베이스의 윈도우 함수 지원 없이 마이SQL 내에서 이 작업을 처리할 수 있었지만 불편하고 느렸다. 마이SQL은 이를 해결하기 위해 표준 OVER SQL 키워드를 통해 윈도우 함수를 추가했다. 마이SQL의 경쟁 소프트웨어인 포스트그래SQL(PostgreSQL)이 사용하는 방식과 매우 흡사하다.

같은 맥락에서 추가된 새로운 기능이 회귀 공통 테이블 표현식(recursive common table expressions)이다. 커서나 다른 방법을 쓰지 않고도 쿼리의 일부로 회귀 작업을 수행할 수 있다.

문서와 JSON 작업 강화
마이SQL이 JSON을 지원한 것은 5.7버전부터다. JSON을 네이티브로 사용하는 NoSQL 데이터베이스와 마이SQL 간의 호환성을 높이기 위해 추가됐다. 마이SQL 8.0에서는 이 JSON 지원 성능이 더 강화되고 JSON 쿼리에서 추출하는 기능이 개선됐다. 또한, 쿼리 내에서 마이SQL 네이티브 구조의 데이터와 JSON 데이터를 통합하는 새로운 집합 기능도 추가했다.

JSON 관련된 또다른 개선 사항에는 마이SQL의 문서 스토어 기능이다. 마이SQL의 문서 스토어에 대한 읽고 쓰기 작업은 안정적이며, JSON 데이터 수정 사항도 되돌릴 수 있게 됐다. 문서 데이터는 색인되는 지리 데이터용 오픈 지오JSON 형식으로 저장되므로, 이를 기반으로 검색할 수도 있다.

기타 마이SQL 8.0의 변화
이밖에 마이SQL의 주요 변화는 다음과 같다.

- 잠긴 열 관련 작업이 더 유연해졌다. 'SKIP LOCKED’, ‘NOWAIT’ 등의 키워드를 사용하면 된다. SKIP LOCKE은 작업 중 잠긴 열을 건너뛰고, NOWAIT은 잠긴 열을 만나면 즉시 오류 메시지를 보여준다.
- 이제 마이SQL은 자동으로 사용할 수 있는 최대 메모리로 확장한다. 가상머신 사용에 최적화하기 위해서다.
- 색인을 수동으로 배제할 수 있다. 쿼리 옵티마이저에서 'invisible index’ 기능을 이용하면 된다. 이렇게 하면 색인은 ‘invisible’ 상태가 되고 쿼리를 최적화하는 데 사용되지 않는다. 특정 색인을 유지하거나 혹은 유지하지 않아야 할 때 사용할 수 있는 비파괴적인 방법이다.

마이SQL 8.0 베타 버전은 마이SQL 웹사이트에서 다운로드할 수 있다. 윈도우, 맥OS를 비롯해 리눅스와 프리BSD 등 다양한 리눅스와 솔라리스 등을 지원한다. 소스 코드도 확인할 수 있다. ciokr@idg.co.kr 
2017.09.29

마이SQL 8.0 베타 공개··· 유니코드·JSON 등 개선

Serdar Yegulalp | InfoWorld
마이SQL은 많은 웹 애플리케이션 스택에 표준 요소로 사용되는 유명 오픈소스 데이터베이스다. 최근 마이SQL 8.0 버전의 첫 RC 버전이 공개됐다. 주요 기능은 다음과 같다.

- 유니코드 9.0용 퍼스크 클래스 지원
- 윈도우 함수와 회귀 SQL 문법 지원
- 네이티브 JSON 데이터와 문서 스토어 기능 지원 강화

8.0 버전을 내놓으면서 마이SQL은 기존 5.5버전에서 숫자를 많이 건너뛰었다. 6.0버전은 좋은 평가를 받지 못했고 7.0은 마이SQL 클러스터링 버전이었다. 마이SQL은 8.0 발표 일정을 못박지 않았지만 기본적으로 매 18~24개월마다 새로운 버전을 내놓는다. 가장 최근의 발표가 2015년 10월 21일에 나온 마이SQL 5.7이었으므로, 마이SQL 8.0의 최종 버전은 오는 10월 경 나올 것으로 보인다.



표준 유니코드 관련 문제 해결
이번 마이SQL 8.0 버전의 가장 큰 변화이자 논쟁거리는 기본값으로 유니코드를 적용하는 것이다. 마이SQL은 유니코드 관련해서 꽤 오랫동안 골치를 앓았다. 마이SQL 8.0에서 이 문제 중 상당수가 해결될 것으로 보인다.

먼저 마이SQL 8.0은 더이상 기본 인코딩으로 latin1을 사용할 수 없다. 대신 utf8mb4을 기본 캐릭터로 추천한다. utf8mb4은 현재 비판을 받고 있는 utf8mb3 캐릭터 세트보다 더 빠르고 더 유연한 데이터 정렬을 지원한다. 또한, 향상된 유니코드는 넌웨스턴(non-Western) 문자 세트는 물론 이모티콘도 지원할 예정이다.

윈도우 함수 지원
마이SQL 8.0은 윈도우 함수를 지원한다. 쿼리에서 개별 열에 접근을 허용하면서도 여러 열에 걸쳐 총량을 계산한다. 기존 마이SQL에서도 데이터베이스의 윈도우 함수 지원 없이 마이SQL 내에서 이 작업을 처리할 수 있었지만 불편하고 느렸다. 마이SQL은 이를 해결하기 위해 표준 OVER SQL 키워드를 통해 윈도우 함수를 추가했다. 마이SQL의 경쟁 소프트웨어인 포스트그래SQL(PostgreSQL)이 사용하는 방식과 매우 흡사하다.

같은 맥락에서 추가된 새로운 기능이 회귀 공통 테이블 표현식(recursive common table expressions)이다. 커서나 다른 방법을 쓰지 않고도 쿼리의 일부로 회귀 작업을 수행할 수 있다.

문서와 JSON 작업 강화
마이SQL이 JSON을 지원한 것은 5.7버전부터다. JSON을 네이티브로 사용하는 NoSQL 데이터베이스와 마이SQL 간의 호환성을 높이기 위해 추가됐다. 마이SQL 8.0에서는 이 JSON 지원 성능이 더 강화되고 JSON 쿼리에서 추출하는 기능이 개선됐다. 또한, 쿼리 내에서 마이SQL 네이티브 구조의 데이터와 JSON 데이터를 통합하는 새로운 집합 기능도 추가했다.

JSON 관련된 또다른 개선 사항에는 마이SQL의 문서 스토어 기능이다. 마이SQL의 문서 스토어에 대한 읽고 쓰기 작업은 안정적이며, JSON 데이터 수정 사항도 되돌릴 수 있게 됐다. 문서 데이터는 색인되는 지리 데이터용 오픈 지오JSON 형식으로 저장되므로, 이를 기반으로 검색할 수도 있다.

기타 마이SQL 8.0의 변화
이밖에 마이SQL의 주요 변화는 다음과 같다.

- 잠긴 열 관련 작업이 더 유연해졌다. 'SKIP LOCKED’, ‘NOWAIT’ 등의 키워드를 사용하면 된다. SKIP LOCKE은 작업 중 잠긴 열을 건너뛰고, NOWAIT은 잠긴 열을 만나면 즉시 오류 메시지를 보여준다.
- 이제 마이SQL은 자동으로 사용할 수 있는 최대 메모리로 확장한다. 가상머신 사용에 최적화하기 위해서다.
- 색인을 수동으로 배제할 수 있다. 쿼리 옵티마이저에서 'invisible index’ 기능을 이용하면 된다. 이렇게 하면 색인은 ‘invisible’ 상태가 되고 쿼리를 최적화하는 데 사용되지 않는다. 특정 색인을 유지하거나 혹은 유지하지 않아야 할 때 사용할 수 있는 비파괴적인 방법이다.

마이SQL 8.0 베타 버전은 마이SQL 웹사이트에서 다운로드할 수 있다. 윈도우, 맥OS를 비롯해 리눅스와 프리BSD 등 다양한 리눅스와 솔라리스 등을 지원한다. 소스 코드도 확인할 수 있다. ciokr@idg.co.kr 
X