MySQL 테이블 스페이스 이해 및 활용

ya·2025년 4월 1일

DataBase와 SQL

목록 보기
8/12
post-thumbnail

📌 MySQL 테이블 스페이스 이해 및 활용

데이터베이스에서 뷰(View) 는 한 가지 이상의 테이블을 기반으로 하는 가상의 테이블이며, 테이블 스페이스(Table Space) 는 테이블이 저장되는 물리적 공간을 의미한다. 대용량 데이터를 다룰 때 테이블 스페이스를 적절히 설정 하는 것이 성능 향상에 중요한 역할을 한다.


🗄 테이블 스페이스(Table Space)란?

  • 테이블이 저장되는 물리적인 저장 공간을 의미하며, 데이터 파일로 구성됨
  • 데이터베이스는 테이블을 논리적 공간으로 다루지만, 실제 저장은 테이블 스페이스에서 이루어짐
  • 특히 대용량 데이터를 다루는 경우, 성능 최적화를 위해 테이블 스페이스를 적절히 설정하는 것이 중요

🔍 MySQL에서 테이블 스페이스 확인하기

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 파일)에 저장된다.

profile
ya로그

0개의 댓글