파티션 용량 부족을 해결하기 위해 또는 I/O분산을 위해서 파일 본체를 별도의 디렉토리에 이동하고 데이터베이스를 나타내는 디렉토리밑에 심볼릭링크를 만드는 것이 가능하다.
mysqld옵션(my.cnf파일)에 skip-symlink가 지정되어있으면 심볼릭링크는 사용하지 못한다.
심볼릭링크를 사용하기 위해서는 수동으로 심볼릭링크를 만드는 방법과 CREATE TABLE문을 실행할때 특정 키워드를 지정하는 방법이 있다.
SQL문 심볼릭링크사용예
mysql> CREATE TABLE table1 (i int) ENGINE=MYISAM DATA DIRECTORY ='/disk1/data/' INDEX DIRECTORY = '/disk2/data/';
DATA DIRECTORY에는 MYD 보존위치를 지정하고 INDEX DIRECTORY에는 MYI 보존위치를 지정한다.
수동으로 심볼릭링크를 만드는 경우는 mysql을 정지시킨 후 작업하는 것이 안전하다.
mysqld를 정지시킬 수 없는 경우는 SQL문으로 그 테이블을 락(lock)해놓은 후 작업한다.
작업예
mysql> LOCK TABLES table1 WRITE;
mysql> FLUSH TABLES;
(파일 이동과 심볼릭링크 작성을 실행한다.)
mysql>UNLOCK TABLES;