본문 바로가기

MySQL Ver. 5.74

MySQL Ver.5.7 Keyring framework MySQL Ver. 5.7.11 부터 컴포넌트와 플러그인 형태로 keyring service를 제공한다. 이 기능은 InnoDB를 사용하는 경우에만 사용할 수 있다. 그러나, 나중에는 다른 스토리지 엔진에서도 사용할 수 있게 개선할 것이다. Keyring 서비스는 front-end 인터페이스이고, back-end는 모두 다른 Keyring을 사용할 수 있다. 2가지의 keyring을 제공한다. 1. keyring_file MySQL Ver. 5.7.11부터 플러그인 형태로 커뮤니티 서버에서 제공하는 것으로 암호화 되지 않은 일반 파일안에 키를 정한다. 그래서 안전한 곳에 해당 파일을 저장해야 한다. 2. keyring_okvMySQL Ver. 5.7.12부터 플러그인 형태로 엔터프라이즈 서버에서 제공하는.. 2016. 6. 29.
MySQL Ver. 5.7 InnoDB Transparent Page Compression InnoDB에서 페이지에 대한 압축 기능을 제공한 건 InnoDB Plugin for MySQL Ver. 5.1 부터였다. 하지만, 처음에 이 압축기능은 성능도 많이 떨어지고 문제가 많아서 쓰기에 부적합했었다. 버젼이 높아지면서 해당 문제는 조금씩 해결되어 가고 있는데, MySQL Ver. 5.7에서는 어떻게 수정되어 변경되었는지 알아보도록 하자. MySQL Ver. 5.7에서는 좀 더 단순하게 구현하려고 노력했다. 그래서 변화된 코드에서는 기본은 localize 즉, 관리 데이터는 로컬에서 처리되게 하고, 기존의 InnoDB 압축 기능과 새 압축 기능이 하나의 인스턴스 안에서 공존하여 사용할 수 있게 하였다. 사용자 입장에서는 자신이 원하는 압축 방법을 사용할 수 있게 제공하고, 가능하면 테이블 별로 .. 2016. 6. 3.
MySQL Ver. 5.7에서 임시테이블에 대한 성능 개선 1. InnoDB Temporary Table Undo Logs MySQL Ver. 5.7.2에서 일반 임시 테이블과 암축 임시테이블 그리고 거기에 연관된 오브젝트들을 위한 새로운 타입의 Undo Log 가 소개되었다. 임시 테이블의 내용은 Crash Recovery에서 사용되지 않기 때문에 redo log가 필요하지 않다. 즉, 임시 테이블의 정보는 서버가 운영 중일때, 롤백해야 하는 상황에서만 필요하다. 리두로그를 만들지 않는 Undo Log는 해당 임시 테이블과 거기에 관련된 오브젝트를 위한 redo logging으로 인해 발생하는 Disk I/O를 피할 수 있기 때문에 성능에 도움을 준다. 임시 테이블에 대한 Undo Log는 임시 테이블 스페이스에 위치한다. 기본으로 생성되는 임시 테이블 스페이.. 2016. 6. 2.
MySQL Ver. 5.7 DML 작업 성능 개선 MySQL Ver. 5.7에서 DML 작업의 성능 개선을 위한 어떤 내용들이 변경되었는지 간단히 알아보도록 하자. 1. Fix index->lock contention InnoDB는 Primary Index나 Secondary index나 모든 인덱스에 대해 RW Lock을 사용하여 인덱스를 보호한다. MySQL Ver. 5.7 이전에는 모든 변경 작업에 대해 다른 스레드의 접근을 막기 위해 모든 인덱스를 X-lock을 사용하여 접근을 막았었다. (즉, leaf 페이지 와 non-leaf페이지를 포함하여 다 접근을 막았다. ) 이와 같은 로직을 사용했었기 때문에 동시에 진행되는 DML 작업에 대해 indx->lock 경합이 자주 발생했었다. MySQL Ver. 5.7에서는 non-leaf 페이지에 대해서.. 2016. 6. 1.