본문 바로가기
MySQL별책부록

9. MySQL 5.6 - (Early Access Feature)

by 모모레 2011. 12. 5.
원문은 다음과 같습니다.

http://dev.mysql.com/tech-resources/articles/mysql56-labs-july2011.html

 여기서는 5.6 버젼에 추가된 InnoDB와 Replication 기능에 대해 간단히 알아보도록 하자. 

InnoDB Improvements.
 
InnoDB는 MySQL의 default Storage Engine으로 community와 customer의 요청에 따라 다음의 기능들이 추가되었다.

InnoDB Full-Text Search

InnoDB에 저장된 text-based context에 대해 검색하고 찾을 수 있는 기능을 제공한다. 이 새로운 기능은 natural Language, Boolean, Query expansion(wildcard)와 proximity search 알고리즘과 옵션을 제공하여 사용할 수 있다.

  • Jimmy Yang helps you get started with FTS.
  • John Russell's FTS tutorial.
  • Jimmy Yang explains the differences between InnoDB and MyISAM FTS.
  • Jimmy Yang and Vinay Shukla discuss FTS performance.

  • InnoDB Redo Log Files max size increased up to 2 TB.

    이제 InnoDB Redo Log 파일을 4G부터 2TB까지 생성하는것이 가능하다.  데이터변경 부하가 심한 서버의 경우 성능 개선에 좋은 영향을 줄거라 기대할 수 있다. 

    InnoDB UNDO logs to reside in ther own tablespace.

    현재 InnoDB의 Undo Log은 InnoDB의 system tablespace내에 저장된다. 5.6에서부터는 undo log부분을 system tablespace에서 분리하여 따로 생성할 수 있게 되었다. 이 기능을 이용하여 undo 영역을 다른 디스크 영역에 분리하여 저장할 수 있다. 

    See Sunny Bains' blog for details

    InnoDB Buffer Pool options for pre-loading/warming on re-start

     MySQL이 restart가 되는 경우 자동적으로 buffer pool에 특정 데이터를 로딩할 수 있는 기능이 추가되었다. 이 dump process는 빠르고 경제적이기 때문에 서버에 적은 오버헤드를 주어서 사용하기에 좋다. 이 작업 자체는 background로 진행되기 때문에 start작업에 영향을 주지 않는다. 

    See Vasil Dimov's blog for details.

    InnoDB .ibd files imporved auto-extension

    InnoDB의 innodb_file_per_table옵션을 사용했을 경우 각 table tablespace공간을 확장시키는 기능이 향상되었다. 이 설정을 사용하면 InnoDB의 많은 기능을 사용할 수 있다. 

    See Inaam Rana's blog for details.

    InnoDB Page Size from 4K to 64K

    이 기능은 SSD나 flash에 최적화되어 InnoDB의 page를 설정할 수 있게 해준다. (아직은 현 버전에 추가되지 않았다.)

    See Kevin Lewis's blog for details.

    The list above is not exhaustive, so for a complete rundown of all the new InnoDB features see Calvin Sun's InnoDB blog.

    Replication Improvements 

    MySQL Replication은 scalability와 high-availability를 위해 가장 많이 사용하는 기능이다. 이 부분도 community와 고객의 요청에 따라 다음과 같은 기능들이 추가되었다.

    Binlog API

    C++로 사용가능한 Binlog API가 제공된다. 이 API를 이용하여 binary log event를 파싱한다거나 분석하여 필요한 데이터만 추출하는 일등이 가능하게되었다.

    Binlog Group Commit (Complates InnoDB Group Commit implemented in MySQL 5.5)

    MySQL Replication의 성능 향상을 위해, Group Commit은 binary log를 동시에 update하고 한꺼번에 commit할 수 있게 허용한다.
     
     사용자는 group commit작업의 빈도수를 다음과 같은 방법으로 컨트롤 할 수 있다. :
    1. 한꺼번에 같이 작업할 transaction의 갯수를 설정한다. 
    2. millisecond단위로 작업할 interval을 설정한다. 

    현재 Binlog Group commit은 진행중안 작업안에서 snapshot으로 동작한다. 우리는 직접 benchmark를 진행하지 않았지만, 이 작업으로 성능에 좋은 영향을 줄 수 있다고 판단하고 있다. 관련해서 문의 사항이 있으면 MySQL development team에 문의하도록 한다. 

    See Mats Kindahl's blog for details.

    Durable Slave Reads

    Master의 binary log를 Slave가 읽을때의 성능 개선을 위해 다음과 같이 2가지 옵션을 선택할 수 있게 되었다.  

    • update가 적용되자 마다 binlog를 읽는다. (Master장애에  의한 event 분실을 감수하고 사용해야 한다)
      디스크에 작성된 binlog만 읽는다. 이 옵션은 read 기능에 대한 안전성을 높혀준다. 하지만, disk에 커밋된 후 slave가 읽어들이기 때문에 조금 느려질 수 있다. 
       
    Follow Mats Kindahl's blog on all things MySQL Replication for details.

    Enhanced Multi-Threaded Slaves


    Slave에서 여러 Thread를 생성하여 동시에 여러 변경사항을 저장할 방법을 추가할 예정이다. 이미 2011년 4월에 preview를 진행했다.

    See Luis Soares' blog for details. 

    Next Steps:
    추가적인 기능 개선이나 변경 사항은 다음에서 확인이 가능하다. 

  • Download the Early Access (Labs) features: http://labs.mysql.com
  • Download the current MySQL 5.6 DMR: http://dev.mysql.com/downloads/
  • Read the MySQL 5.6 docs: http://dev.mysql.com/doc/
  • Report a bug, make a request: http://bugs.mysql.com/
  • Blog about your experience: http://planet.mysql.com/
  • Join the discussion: http://forums.mysql.com/



  •  



     

    'MySQL별책부록' 카테고리의 다른 글

    11. MySQL Insert Buffer  (0) 2012.06.05
    10. MySQL Double Write Buffer  (5) 2012.03.04
    8. alter 하지 않고 view의 definer 수정하기  (0) 2011.10.23
    6. InnoDB의 Insert Buffer  (0) 2011.05.01
    5. Stored Routines 권한 설정 팁~  (0) 2010.09.15