2011년 1월 13일 목요일

MySQL 5.5 GA 버전 릴리즈 : 새로운 기능(New Features) 소개

조금은 지난 일이지만, MySQL 5.5의 GA(General Available) 버전이 릴리즈 되었다.
이번 버전은 MySQL이 Oracle로 인수되고 난 이후 처음 릴리즈된 버전이다라는 것이
나름 Oracle 입장에서는 큰 의미를 주고 있는 듯 하며,
그 때문인지 이런 저런 새로운 기능들과 성능 향상을 WhitePaper에서 이야기하고 있다.

하지만, 대 부분은 InnoDB 가 플러그인 버전으로 변경되는 MySQL 5.1 수준에서
적용된 내용들이 재탕으로 이야기되고 있는 부분이 많고,
기존 버전에 비해 Linux는 370%, Windows는 1500%가 향상되었다고 이야기하고 있는데,
간단히 그래프를 보면, 개인적으로는 성능 향상이라고 하기보다는 동시성 처리가 상당히 개선되었다고
생각된다.


WhitePaper에서 이야기하고 있는 더 상세한 개선점들은 아래와 같다.


주요 개선 사항


  • InnoDB가 이제부터는 MySQL의 기본 스토리지 엔진으로 적용됨
    InnoDB as the default database storage engine 
  • 윈도우즈 서버에서 성능과 확장성 개선됨
    Improved Performance and Scalability on Windows 
  • 모든 플랫폼의 서버에서 멀티 코어 아키텍쳐를 최대한 사용 가능하도록 성능과 확장성 개선
    Improved Performance and Scalability to fully utilize the computing power of modern multi-core architectures across all platforms 
  • 가용성 개선됨
    Improved Availability 
  • 관리성과 효율성 개선됨
    Improved Manageability and Efficiency 
  • 사용성 개선됨
    Improved Usability 
  • 진단 도구들의 개선
    Improved Instrumentation and Diagnostics



[성능 및 확장성] 개선 사항

  • 쓰레드의 동시성 처리 성능 향상
    Improved Default Thread Concurrency
  • 백그라운드 I/O 쓰레드의 컨트롤 기능 도입
    Control of Background I/O Threads
  • InnoDB의 마스터(Replication의 마스터 아님) 쓰레드 의 I/O 비율 조절 기능 도입
    Control of Master Thread I/O Rate
  • 운영체제의 메모리 할당 기능을 사용하도록 조절 가능
    Control of Using Operating System Memory Allocators
  • AdaptiveHashIndex의 관리 기능 도입
    Control of Adaptive Hash Indexing
  • Insert Buffer 기능의 관리 파라미터 도입
    Control of Insert Buffering
  • Faster locking 알고리즘을 이용한 확장성 개선
    Improved scalability via Faster Locking algorithm
  • Group Commit 기능 복구(다시 사용할 수 있도록 개선됨)
    Restored Group Commit
  • 복구 (Recovery) 성능 개선
    Improved Recovery Performance 
  • InnoDB의 Buffer pool을 여러개 설정할 수 있도록 개선됨
    Multiple Buffer Pool Instances
  • Rollback 세그먼트를 여러개 설정할 수 있도록 개선됨
    Multiple Rollback Segments
  • Linux의 네이티브 비동기 I/O 적용
    Native Asynchronous I/O for Linux
  • Insert buffer의 기능을 인덱스의 INSERT뿐만 아니라 DELETE까지도 확장 적용
    Extended Change Buffering: Now with Delete and Purge Buffering
  • InnoDB buffer pool의 작업과 Flush 리스트를 관리하는 Mutext를 분리 적용
    Improved Log Sys Mutex and Separate Flush List Mutex
  • Bufer pool의 불필요한 페이지의 purge 작업의 스케쥴링 개선
    Improved Purge Scheduling
  • 트랜잭션 내에서 메타 락(오브젝트 잠금)과 다른 트랜잭션의 DDL 문장간의 락 점유 방식 개선
    Improved Metadata Locking Within Transactions





[가용성] 개선 사항

  • 반 동기화 복제
    Semi-synchronous Replication
  • 복제시 마스터와 슬레이브 사이의 Heartbeat 메시지 적용
    Replication Heartbeat
  • Relay 로그 자동 복구 기능
    Automatic Relay Log Recovery
  • 특정 Master의 Replication 로그 필터링 기능
    Replication Per Server Filtering
  • 마스터와 슬레이브간의 다른 데이터 타입 허용(동일 String 또는 Numeric 타입들 내에서)
    Replication Slave Side Data Type Conversions


[관리 및 효율성] 개선 사항

  • 빠른 인덱스 생성 및 삭제
    Faster Index Creation
  • 효율적인 데이터 압축
    Efficient Data Compression
  • LOB (BLOB, TEXT) 데이터 타입이나 길이가 긴 VARCHAR 타입의 관리 효율성 향상
    Efficient Storage Options for Large Objects and Variable-Length Columns
  • INFORMATION_SCHEMA의 잠금 및 트랜잭션 그리고 압축 관련 딕셔너리 추가됨
    New INFORMATION_SCHEMA tables 
  •  


[사용성] 개선 사항

  • SIGNAL과 RESIGNAL 명령 추가 (StoredRoutine 관련)
    New SQL Syntax for SIGNAL/RESIGNAL
  • 새로운 테이블이나 인덱스 파티셔닝 기능(Non-Integer 타입으로 List나 Range 파티션 생성 가능)
    New Table/Index Partitioning Options


[진단도구] 개선 사항

  • INFORMATION_SCHEMA의 잠금 및 트랜잭션 그리고 압축 관련 딕셔너리 추가됨
    New PERFORMANCE_SCHEMA


가장 중요한 변화 : MySQL 5.5 버전부터는 Enterprise Edition의 경우 소스를 다운로드할 수 없게 되었다. 이제부터 Enterprise edition은 빌드된 MySQL만 사용할 수 있게 될 것 같다.
Community edition은 예전과 동일함








댓글 없음:

댓글 쓰기