http://www.mysqlkorea.co.kr
한글매뉴얼 5.0 , 한글매뉴얼 5.1 , MySQL 5.1 HA , 사용자매뉴얼
Advanced Knowle...  
엔지니어 노트  
블로그존  
글로벌 MySQL  
MySQL 5.5 GA  
MySQL 5.6 Developer  
최신글
인텍스 추가 등에…
mysql master - s…
다대다 관계에서 …
mysql my파일과 …
mysql server 설…
 
MySQL 5.6 Lab - InnoDB / Replication
글쓴이 : taeguni   날짜 : 11-10-04 14:06   조회수 : 6390

MySQL 5.6 InnoDB의 기능 개선 사항

InnoDB 스토리지 엔진은 MySQL의 기본 스토리지 엔진중 하나입니다.
  1. InnoDB Full-Text 검색 기능
    지원기존에 지원하지 않던 InnoDB 엔진에서의 Full Text Index를 지원함으로써, 텍스트 기반의 검색을 지원합니다. 이 새로운 기능은 자연어 검색, 부울 검색, 검색어 확장(와일드카드) 및 근접 검색 옵션/알고리즘을 사용하여, 빠르고 정확한 검색을 지원합니다.
  2. InnoDB REDO LOG (트랜잭션 로그) 의 확장
    InnoDB REDO LOG (트랜잭션 로그) 파일의 최대크기가 기존 4Gb에서 2Tb까지 증가하였습니다. 로그 파일이 한도에 도달 할 때 까지, 응용프로그램에서의 과도한 데이터 입력 작업이나 매우 긴 트랜잭션의 실행에서 성능이 크게 향상되었습니다.
  3. InnoDB UNDO LOG 기능 확장
    InnoDB UNDO LOG는 InnoDB의 테이블의 현재 상태를 저장하고 있는 로그로 원래는 InnoDB 테이블 스페이스 안에 존재지만, MySQL 5.6 버전에서는 사용자가 InnoDB UNDO LOG를 InnoDB의 시스템 테이블 스테이스에서 분리하여, 별도의 테이블 스페이스에 저장하는 것을 가능하도록 합니다.또한 사용자가 원하는 경우 특정 테이블 스페이스에 UNDO LOG를 FLUSH(적용) 하거나 SSD에 저장할 수 있습니다.
  4. pre-loading/warming을 위한 InnoDB Buffer Pool 재시작 옵션
    MySQL 데몬을 재시작 할 때, InnoDB Buffer Pool을 위한 재시작 옵션이 추가된 것으로, Innodb Buffer Pool의 pre loading(데이터를 미리 읽어오기) 또는 warming(예열)에 의한 빠르고 가벼운 dumping 기능을 제공하며, 언제든지 자동 또는 수동으로 InnoDB Buffer Pool의 내용을 복원하는 것이 가능해집니다. 또한, 복원 프로세스는 백그라운드에서 실행하여, 데이터를 읽어오지만, 정상적인 데이터베이스는 빠르게 시작되고, 서비스에 영향을 주지 않습니다.
  5. InnoDB .ibd 파일의 auto-extension 기능 개선
    innodb_filte_per_table 설정을 사용하여 만든 테이블 .ibd 파일(트랜잭션 로그 파일)의 auto extension(자동 확장)기능이 실행할 때, 발생할 수 있는 시스템 뮤텍스(Thread 간의 상호 배재 기능)에 대한 충돌을 줄이며, 이 개선으로 여러 개의 파일이 백그라운드 프로세스 안에서 읽기와 쓰기 작업을 하는 다른 Thread의 충돌이나 Lock이 발생하지 않고, .idb 파일이 자동 확장 됩니다.
  6. 4Kb에서 64Kb로 InnoDB 페이지 크기 변경
    이 기능은 SSD(Solid State Drive)와 같은 유형의 미디어의 최적화와 를 위한 필수 옵션으로, 기존의 16Kb(기본 값) 이외에 작은 4Kb, 8Kb에서 64Kb까지의 페이지 크기를 지정 할 수 있습니다.

MySQL 5.6 Replication의 기능 개선 사항

MySQL Replication은 확장성과 고가용성 달성하기 위해서 사용되는 방법 중, 가장 인기 있고 많이 사용되는 방법입니다.
  1. Binlog API
    Binlog API는 독립 라이브러리로, 바이너리 로그에 C++ 프로그래밍 인터페이스를 제공합니다. 개발자는 API를 사용하여, 기존의 binlog 파일에서 바이너리 로그 이벤트를 읽고, 분석하여 실행중인 서버에서 다른 데이터 저장소에 변경된 내용을 복제 할 수 있습니다. 즉, 새로운 Binlog API는 개발자가 MySQL의 SQL 데이터 관리 작없을 표준화 하여 복잡성을 통합하여 줄이는 것을 가능하게 하는 반면, 자신이 관리하는 인프라 내에서 MySQL이 아닌 다른 응용프로그램에 데이터를 복제할 수 있습니다. Binlog API의 가능성을 입증하기 위해서, 아파치 Solr (http://lucene.apache.org/solr/) Full-Text 검색 서버에 MySQL 데이터베이스에서 변경 내용을 복제 예제 응용 프로그램이 개발되었습니다.
  2. Bin Log Group Commit
    MySQL Replication 성능을 향상시키기 위해서 설계된 것으로, 바이너리 로그에 대한 업데이트를 병렬로 적용하고, 디스크의 binlog에 반영하는 기능입니다.사용자는 디스크에 적용하는 빈도를 다음과 같이 완벽하게 제어할 수 있습니다.
    1) 함께 처리되는 그룹화 단위를 구성 할 수 있습니다.
    2) 바이너리 로그가 지속되어지는 시간을 1000분의 1초 단위로 정의 할 수 있습니다.Bin Log Group Commit은 현재 진행 작업의 스냅 샷입니다.
  3. Durable Slave Reads
    Slave 서버에서 Master 서버의 바이너리 로그를 읽을 때 제어할 수 있는 선택권이 주어지는 기능으로 두 가지 옵션이 있습니다.
    1) 바이너리 로그를 읽고 즉시 업데이트가 적용하는 옵션 (Master 서버의 장애가 발생하는 경우 데이터 손실의 위험이 있습니다.)
    2) 빈번한 데이터 갱신을 하지 않고, 한 번에 바이너리 로그를 읽고 반영하기 위해서, read-durable(읽기 안전장치)을 설정함으로써 데이터 분실 처리 위험이 발생하지는 않지만, Slave 서버의 데이터는 Master의 데이터보다 반영이 늦는 문제가 발생하는 옵션
  4. Multi Thread Slave
    테스트 버전의 일환으로 Multi Thread Slave가 업데이트된 데이터베이스를 통하여, 병렬로 적용할 수 있도록 함으로써 순차적인 업데이트보다 상당한 성능향상을 제공하게 되었습니다.
이전글 MySQL 5.6의 새로운 기능 
다음글 MySQL 5.6.2 labs innodb memcached 설치 및 테스트 
MySQL Korea 사이트의 컨텐츠 소유권은 (주)상상이비즈에 있으므로 무단전재를 금합니다.
Copyright ⓒ ssebiz All Rights Reserved.