2014. 8. 8. 19:21

MY SQL의 아키텍처 구조


MYSQL의 전체구조는


응용 프로그램 : MYSQL을 접속하고 사용하기 위한 응용프로그램들


-------------------- MYSQL 서버

-------------------- MYSQL 엔진

커넥션 핸들러 : 응용 프로그램과 MYSQL을 연결해주는 부분

SQL인터페이스 & SQL 파서 & SQL 옵티마이저 & 캐쉬 AND 버퍼 : 실제 쿼리파일을 처리하고 DB동작을 처리하는 부분


-------------------- 스토리지엔진

스토리지 엔진 : 파일을 일고 쓰는 엔진들

디스크 파일 시스템 AND 데이터 및 로그 파일 : 스토리지 엔진을 통해서 나온 실제 데이터들

로 구성된다


MYSQL은 일반 상용 RDBMS에서 제공하는 대부분의 접근법을 모두 지원한다. MYSQL 고유의 C API부터 시작해서 JDBC나 ODBC, 그리고 .NET의 표준 드라이버등을 제공한다.

이러한 드라이버를 이용해서 C++등 모든 언어를 통해서 MYSQL을 이용할 수 있게 지원한다.


스토리지엔진

MYSQL엔진은 요청된 SQL문장을 분석하거나 최적화하는등 DBMS의 두뇌에 해당하는 처리를 수행한다.

실제 데이터를 디스크 스토리에 저장하거나 디스크 스토리지부터 읽어오는 부분은 스토리지 엔진이 전담한다.

MYSQL서버에서 MYSQL엔진은 하나지만 스토리지 엔진은 여러개를 동시에 사용이 가능하다.

다음 예제와 같이 테이블이 사용할 스트리지 엔진을 지정하면 이후 해당테이블의 모든 읽기 작업이나 쓰기 작업은 정의된 스토리지 엔진이 처리한다.


CREATE TABLE TEST_TABLE (FD1 INT, FD2 INT) ENGINE=INNODB;

이러면 이제부터 위의 테이블의 읽기 쓰기 삭제 명령은 INNODB에서 처리한다.


핸들러 API

MYSQL 엔진의 쿼리 실행기에서 데이터를 쓰거나 읽어야 할 때는 각 스토리지 엔진에게 쓰기 또는 읽기를 요청하는데, 이러한 요청을 (Handler) 요청이라고 하고, 여기서 사용되는 API를 핸들러 API라고 한다. INNODB스토리지 엔진 또한 이 핸들러 API를 이용해 MYSQL 엔진과 데이터를 주고 받는다. 



Posted by JJOREG