MySQL

MySQL
MySQL Standard Edition MySQL Enterprise Edition MySQL Cluster Carrier Grade Edition

MySQL은

전세계에서 가장 인기 있는 오픈 소스 관계형 데이터베이스 시스템으로 ANSI/ISO표준에서 정의한 데이터베이스 접속을 위한 가장 일반적인 표준 언어인 SQL을 사용합니다. 또한, LAMP(Linux, Apache, MySQL,PHP/Perl)는 물론 SAMP(Solaris, Apache, MySQL, PHP/Perl), WAMP (Windows, Apache, MySQL,PHP/Perl) 등 사용자의 환경에 맞는 대부분의 Platform을 지원함은 물론 MySQL 데이터베이스 소프트웨어는 다중-쓰레드SQL서버로 클라이언트/서버 또는 임베디드 시스템에서 사용할 수 있습니다.

MySQL의 가치와 장점

  • ANSI SQL 표준을 준수하기 때문에 SQL 표준함수의 경우 타 DB와 동일하게 사용이 가능합니다.
  • 자동 재시작/복구, 백업 및 PiT 복구, 논리적 온라인 핫 백업을 제공합니다.
  • 스토리지 엔진은 동적으로 변경하여 관리할 수 있으며 사용하는 어플리케이션의 최적의 성능을 나타낼 수 있도록 도와줍니다.OLTP 및 트랜잭션을 제공합니다.
  • 여러 분야에 적용되어 제품의 안정성이 검증되어 가장 많이 쓰이며, 선호되는 Open Source DBMS로 가격대비 효율성이 큰 특장점을 지니고 있습니다.



MySQL General Architecture

Connector

MySQL 원시 C 라이브러리로 JMX Mbean 으로의 배치를 위한 MySQL 커넥터/MXJ 입니다. 다양한 언어에서 MySQL 서버로 접속할 수 있도록 커넥터 제공합니다.

Connector pool

인증, thread 재사용, 접속제한, 메모리 캐싱 등을 이용하여 클라이언트와의 세션을 연결하고 유지 합니다.

Cache 및 Buffer

캐쉬와 버퍼를 제공하여 불필요한 Disk-IO 발생을 감소시켜 성능향상을 가능하게 합니다.

Storage engine

스토리지 엔진에 따라 사용하는 어플리케이션이 최적의 성능을 나타낼 수 있도록 도와줍니다.

MySQL Cluster Architecture

MySQL Cluster는 종합적으로 애플리케이션에 대한 서비스를 제공하는 3가지 노드 유형으로 구성되어 있습니다. MySQL Cluster를 구성하고 있는 노드 유형은 다음과 같습니다

데이터 노드 (Data Node)

스토리지를 관리하고 데이터에 액세스합니다. 테이블은 자동으로 데이터 노드 전반에 걸쳐 샤딩(sharded)되며 투명하게 로드 밸런싱, 리플리케이션, 페일 오버가 가능합니다.

어플리케이션 노드 (Application Node)

애플리케이션 로직에서 데이터 노드로의 연결을 제공합니다. MySQL은 업계 선도적인 모든 웹 개발 언어와 프레임워크에 대한 연결을 비롯해 표준 SQL 인터페이스를 제공합니다. 또한 여기에는 Memcached, C++ (NDB-API), Java, JPA, REST/HTTP 등을 비롯해 모든 범위의 NoSQL 인터페이스가 포함됩니다.

관리 노드(Management Node)

클러스터를 구성하고 네트워크 파티션 시 중재 서비스를 제공하는 데 사용됩니다.


유연한 아키텍처

  • - 오픈 소스
  • - 멀티 스레드
  • - 플러거블 스토리지 엔진 아키텍쳐
  • - MylSAM
  • - InnoDB
  • - Merge
  • - Memory
  • - Archive
  • - Cluster

ANSI SQL 표준

  • - ANSI SQL
  • - SubQueries, Joins, Cusors
  • - PreparedStatement
  • - 뷰
  • - 트리거
  • - 저장 프로시져
  • - 사용자 정의 함수
  • - 정보 스키마
  • - Unicode
  • - 참조 무결성
  • - 서버 기반 데이터 무결성

복제 & 고가용성

  • - 내장 복제 엔진
  • - 마스터 / 슬레이브
  • - 듀얼 마스터
  • - Replication Ring
  • - Replication Tree
  • - 행 기반 복제
  • - 반동기식(Semi-Synchronous)복제
  • - 클러스터 기반 실시간 페일오버(failover)

MySQL Cluster

  • - 99.999%의 가용성
  • - 분산 아키텍처
  • - 동기식 복제
  • - 실시간 트랜잭션 성능
  • - SQL & NO-SQL 데이터 엑세스
  • - Java, C++,LDAP, HTTP

스토리지 관리

  • - 손쉬운 스토리지 관리
  • - 자동 공간 확장
  • - 기본 내장된 공간 회수 기능
  • - Auto undo / Rollback 관리
  • - 사용자 지정 가능한 스토리지 관리
  • - 테이블 압축 및 아카이브
  • - Packed Index Storage

보안

  • - SSL 지원
  • - 암호화/복호화 기능 내장
  • - 세분화된 객체 권한
  • - 뷰 지원
  • - 감사를 위한 트리거
  • - 감사를 위한 쿼리 로그

고성능

  • - Dynamic Memory Caches
  • - Unique Query Cache
  • - 다수의 색인 타입 지원
    (B-tree, R-tree, Hash등)
  • - 비용 기반 옵티마이저
  • - 고속 쿼리 옵티마이저
  • - 진단 및 SQL Tracing
  • - 성능 스키마

OLTP

  • - ACID 트랜잭션
  • - Commit, Rollback
  • - 외래 키
  • - 참조 무결성
  • - 행 단위 잠금
  • - 잠금을 통한 격리 수준 사용자 지정
  • - 분산 트랜잭션(XA)
  • - 스냅샷 읽기
  • - 반복 가능 읽기(읽기 측과 쓰기 측이 서로 차단하지 않음)
  • - 시간데드록(Timed Deadloack)감지

웹 애플리케이션 최적화 기능

  • - 서버 측 스레드 풀
  • - 커넥션 스레드 캐싱
  • - 쿼리 결과 캐싱
  • - 로드 밸런싱
  • - PreparedStatement
  • - 전문 검색
  • - 다중 문제 집합 지원
  • - 지역 특성 지원
  • - 수 테라바이트 수준의 확장성

데이터 웨어 하우스 최적화 기능

  • - 고속 데이터 로드 유틸리티
  • - 고속 Multi Incert 기능
  • - Rollup을 이용한 그룹화
  • - Aggregate UDF
  • - 분석 SQL 기능
  • - 지리 공간 정보 지원
  • - 수 테라 바이트 수준의 확장성

파티션 (테이블/색인)

  • - 범위(range)
  • - 해시(hash)
  • - 목록(list)
  • - 키(key)
  • - 컴포지트(composit)

관리 용이성, 유지보수 용이성, 운영성

  • - 쉽고 즉각적인 설정
  • - 15분 이내의 설치 시간
  • - 데이터 스키마
  • - 이벤트 스케쥴러

MySQL Enterprise Backup1

  • - Hot Backup for InnoDB
  • - 논리적, 물리적 백업
  • - 압축 백업
  • - Full, Incremental, Partial 백업
  • - Full, Partial 복구
  • - Point in Time 복구
  • - 자동 재시작/복구

MySQL Enterprise High Availability1

  • - Oracle VM Template for MySQL
  • - Windows Failover Clustering for MySQL

MySQL Enterprise Scalability1

  • - MySQL Thred Pool

MySQL Enterprise Security1

  • - MySQL External Authentication
  • - PAM(Pluggable Authentication Module)
  • - Windows Native AuthenticationMySQL

MySQL Enterprise Monitor

  • - MySQL Query Analyzer
  • - MySQL Enterprise Advisors
  • - MySQL Replication Monitor
  • - MySQL Enterprise Advisors

관리 어드바이저

  • - 보안 어드바이저
  • - 복제 어드바이저
  • - 실행 어드바이저
  • - 메모리 사용 어드바이저
  • - 스키마 어드바이저
  • - 업그레이드 ? 어드바이저
  • - 커스텀 어드바이저

그래픽 툴

  • - MySQL Workbench
  • - 데이터 모델링
  • - 데이터 베이스 관리
  • - SQL 에디터

드라이버

  • - MySQL 네이티브 C 라이브러리
  • - MySQL ODBC,JDBC,.Net,C,C++용
    드라이버
  • - PHP,Perl, Python, Ruby용 커뮤니티
    드라이버

OS

  • - Linux, Solaris, FreeBSD, Mac OS, Windows

MySQL Standard Edition는

MySQL 개발자와 DBA를 위한 통합 GUI tool인 Workbench Edition을 포함한 Oracle’s Primire Support 및 높은 성능과 확장성이 뛰어난 Online Transaction Processing(OLTP)를 제공합니다. 또한 MySQL Replication은 높은 성능과 확장 가능한 application을 제공 할 수 있습니다.

MySQL의 의 가치와 장점

Lower TCO MySQL은 기업의 생산성을 높일 수 있으며 다른 RDBMS에 비하여 데이터베이스 관리 TCO를 최소화 할 수 있습니다. Reliability, Performance & Ease of Use MySQL은 세계에서 가장 인기 있는 오픈 소스 데이터베이스로 입증되었습니다. Database Development, Design and Administration MySQL의 Workbench는 개발자와 DBA의 생산성을 높이기 위해 통합 개발, 설계 및 관리 환경을 제공합니다. 또한 추가 기능을 필요로 할 때 Enterprise Edition이나 Cluster Carrier Grade Edition 으로 업그레이드 하기 쉽습니다.

오라클의 MySQL MySQL Standard Edition에 대한 좀 더 자세한 내용은 여기를 클릭해주세요.

MySQL Enterprise Edition는

MySQL Standard Edition을 포함하여 MySQL 모니터링 Tool인 Enterprise Moniter(MEM)와 Backup Tool인 Enterprise Backup(MEB) 제공합니다.

MySQL Enterprise Monitor

Enterprise Monitor와 내장 기능인 query analyze는 지속적으로 데이터베이스에 대한 잠재적인 문제를 모니터링하여 개발자와 DBA, 시스템 관리자에 대한 생산성을 크게 향상시켜 줍니다.

MySQL Enterprise Backup

Database의 온라인 hot backup을 제공하여 데이터 손실의 위험을 줄일 수 있고 더불어 전체, 증분 및 부분 백업 point-in-time 복구 및 압축백업을 지원합니다.

High Availability

MySQL은 MySQL Replication , Oracle VM Templates, DRBD, Oracle Solaris Clustering과 Windows Failover Clustering 에 대한 인증 및 지원 솔루션을 제공합니다.

Scalability

MySQL의 Thread Pool은 클라이언트 연결과 statement실행 thread를 관리하는 오버헤드를 줄이기위한 thread-handling모델을 제공하여 증가하는 사용자,쿼리 및 데이터 로드에 지속적인 성능 및 확장성에 대한 요구사항을 충족 할 수 있습니다.

Security

MySQL은 쉽게 PAM및 windows Active Directory를 포함하여 기존 보안 인프라와 MySQL을 통합하는 외부인증모듈을 사용 할 수 있게 제공하여 사용자는 PAM 또는 기본 windows OS서비스를 사용하여 인증 할 수 있습니다.

Audit

신속하고 원활한 신규 및 기존 application에 정책 기반의 auditing compliance를 추가 할 수 있으며 동적인 사용자 수준 활동 로깅을 activity-based 정책을 구현, audit 로그 파일을 관리하고 Oracle 및 타사 솔루션과 MySQL의 audit을 통합 할 수 있습니다.

오라클의 MySQL Enterprise Edition에 대한 좀 더 자세한 내용은 여기를 클릭해주세요.

MySQL Cluster Carrier Grade Edition는

오늘날 가장 동적인 서비스들이 등장함에 따라 개발자들과 아키텍트들은 다음과 같은 여러 다양한 측면에서 데이터베이스 성능, 확장성 및 고가용성에 대해 고려해야 합니다.
데이터센터 내에서는 물론, 지역적으로 멀리 떨어져 있는 데이터센터 간에 읽기 작업은 물론 쓰기작업을 자동으로 확장할 수 있고, 성능 저하 없이 데이터에 대한 복합쿼리를 실행 가능 다운타임 없이 데이터베이스에 용량 및 성능을 추가하고 스키마를 발전시킬 수 있는 기능을 비롯해 새로운 요구 사항에 발 맞춰 데이터베이스 서비스를 신속하게 성장시킬 수 있어야 한다는 요구 SQL 및 NoSQL 인터페이스를 비롯해 데이터베이스에 대한 액세스에 사용될 수 있는 API 옵션으로 개발자 생산성과 애플리케이션 유연성을 향상시켜야 한다는 요구 정전 시는 물론 예정된 유지 보수 작업이 진행되는 동안에도 중단 없는 가용성을 유지해야 한다는 요구 MySQL Cluster의 아키텍처는 다음과 같은 기능들을 통해 이들 요구 사항을 수용할 수 있도록 설계되었습니다.

쓰기 확장성을 위한 자동 샤딩 (Auto-sharding)

MySQL Cluster는 application의 data변화 없이 저렴한 비용으로 확장이 가능하며 노드간의 자동 sharding을 할 수 있습니다.

실시간 성능 최적화

MySQL Cluster는 실시간 응답시간 및 복잡한 웹의 처리량, 통신과 엔터프라이즈 응용프로그램의 요구사항을 충족 합니다.

액티브 / 액티브 지리적 리플리케이션(geographic replication)

재해복구 및 글로벌 웹 서비스의 확장성을 위하여 지리적으로 분산되는 multiple cluster가 가능합니다.

온라인 확장 및 스키마 업그레이드

on-line으로 node의 추가 및 database schema update를 빠르고 뛰어난 동적 워크로드를 지원합니다.

SQL 및 NoSQL 인터페이스

사용자의 비용 및 위험과 복잡성을 감소시키는 솔루션으로 관계형 및 NoSQL 두 기술의 장점들을 혼합하여 가지고 있습니다.

99.999% 가용성을 위해 통합 클러스터링 및 동기식 리플리케이션을 지원하는 Shared nothing 분산 아키텍처

MySQL Cluster는 Shared nothing 분산 아키텍처로써 오류 및 다운타임없이 스케쥴된 유지보수를 수행 할 수 있는 탄력성을 보장하여 99.999%의 가용성을 제공하도록 설계되었습니다.

오라클의 MySQL Cluster Carrier Grade Edition에 대한 좀 더 자세한 내용은 여기를 클릭해주세요.