2009년 2월 16일 월요일

MySQL5.1 스토리지엔진의 플러그인

MySQL 멀티스토리지엔진 아키텍쳐에 있어서 MySQL5.0까지는 새로운 스토리지엔진을 추가하기 위해서는 이용자가 MySQL소스를 수정해서 컴파일 할 필요가 있었다. 

그렇기 때문에 독자의 스토리지엔진을 추가 하는 것은 매우 어려운 작업이 된다. 

MySQL 5.1에서는 이 멀티스토리지엔진 아키텍쳐가 확장되어 모듈화가 진행되어지고 있다. 

MySQL 5.1에서는 새로운 스토리지를 동적으로 인스톨하거나 언인스톨하거나 하는 것이 가능하다. 

MySQL상위층(통신제어, 구문해석, 최적화등을 실행하는 부문)하고 스토리지엔진하고의 느슨한 결합(Loose coupling)이 진행되고 있다. 

MySQL 5.1에서는 새롭게 INSTALL PLUGIN하고 UNINSTALL PLUGIN라고 하는 SQL명령이 추가되었다. 
인스톨대상의 스토리지엔진은 사전에 공유 라이브러리로 해 놓을 필요가 있다. 

다음처럼 새로이 스토리지엔진을 로딩한다. 

INSTALL PLUGIN ha_example SONAME 'ha_example.so';

SONAME뒤의 값이 공유라이브러리 파일명이다.  파일은 plugin_dir로 지정한 디렉토리에 놓을 필요가 있다. 
기본 plugin_dir은 $base_dir/lib/mysql이다. 

또 다음과 같이 스토리지엔진을 언인스톨가능하다. 

UNINSTALL PLUGIN ha_example;