
데이터베이스에서 뷰(View) 는 한 가지 이상의 테이블을 기반으로 하는 가상의 테이블이며, 테이블 스페이스(Table Space) 는 테이블이 저장되는 물리적 공간을 의미한다. 대용량 데이터를 다룰 때 테이블 스페이스를 적절히 설정 하는 것이 성능 향상에 중요한 역할을 한다.
MySQL에서는 SHOW VARIABLES 명령을 사용하여 현재 사용 중인 테이블 스페이스 설정을 확인할 수 있다.
SHOW VARIABLES LIKE 'innodb_data_file_path';
위 명령을 실행하면 InnoDB 스토리지 엔진에서 사용하는 데이터 파일의 경로와 크기 정보를 확인할 수 있다.
예제 결과:
+------------------------+----------------------------+
| Variable_name | Value |
+------------------------+----------------------------+
| innodb_data_file_path | ibdata1:12M:autoextend |
+------------------------+----------------------------+
ibdata1:12M:autoextend ibdata1 → 테이블 스페이스의 기본 데이터 파일 12M → 초기 크기 12MB autoextend → 자동 확장 설정됨 | 유형 | 설명 |
|---|---|
| 공용 테이블 스페이스 | 모든 테이블이 공용하는 공간 (기본적으로 ibdata1 사용) |
| 개별 테이블 스페이스 | 각 테이블마다 별도의 파일로 저장 (innodb_file_per_table 옵션 사용) |
| 일시적 테이블 스페이스 | 임시 테이블이 저장되는 공간 (ibtmp1) |
innodb_file_per_table)기본적으로 모든 InnoDB 테이블은 ibdata1 파일에 저장되지만, 개별 테이블 스페이스를 사용하면 삭제 후 공간 재사용이 가능해서 성능이 향상될 수 있다.
SET GLOBAL innodb_file_per_table = ON;
이제 생성되는 테이블은 각각의 테이블 스페이스 파일(.ibd 파일)에 저장된다.