답변:
파일 ibdata1
은 InnoDB 인프라의 시스템 테이블 스페이스입니다.
InnoDB에 필수적인 정보를위한 여러 클래스가 포함되어 있습니다.
ibdata1의 위치는 InnoDB Universe (오른쪽)에 있습니다.
innodb_file_per_tableibdata1
을 활성화하여 데이터 및 색인 페이지를 분리 할 수 있습니다 . 이렇게하면 새로 생성 된 InnoDB 테이블이 외부 파일 에 데이터 및 인덱스 페이지를 저장 합니다..ibd
예
CREATE TABLE mydb.mytable (...) ENGINE=InnoDB;
, 생성 /var/lib/mysql/mydb/mytable.frm
/var/lib/mysql/mydb/mytable.ibd
InnoDB 테이블이 어디에 저장 되든지 InnoDB의 기능을 사용하려면 ACID 준수 및 트랜잭션 격리 를 지원 하기 위해 테이블 메타 데이터를 찾고 MVCC 정보를 저장 및 검색 해야 합니다.
다음은 ibdata1에서 테이블 데이터와 인덱스를 분리하는 방법에 대한 지난 기사입니다.
Oct 29, 2010
: StackOverflow의 내 원래 게시물Nov 26, 2011
: 파일의 라인 6308에서 오류 1114 (HY000) 및 user_analysis 테이블이 가득 찼습니다.Feb 03, 2012
: MySQL InnoDB에서 테이블의 예약 최적화Mar 25, 2012
: InnoDB는 왜 모든 데이터베이스를 하나의 파일로 저장합니까?Apr 01, 2012
: innodb_file_per_table이 권장됩니까?ibdata1을 계속해서 모든 것을 저장할 수는 있지만 LVM 스냅 샷을 만드는 것은 실제적인 일입니다 (개인의 견해).
My StackOverflow 포스트를 사용해야하며 해당 파일을 영구적으로 축소해야합니다.
이 쿼리를 실행하십시오 :
SELECT
((POWER(1024,3)*94 - InnoDBDiskDataAndIndexes))/POWER(1024,3) SpaceToReclaim
FROM
(SELECT SUM(data_length+index_length) InnoDBDiskDataAndIndexes
FROM information_schema.tables WHERE engine='InnoDB') A;
InnoDB Cleanup을 적용한 후 얼마나 많은 공간을 확보 할 수 있는지 알려줍니다.
SpaceToReclaim
. MB 단위입니까? 퍼센트? 바이트?
94
은 ibdata1
파일 크기 ( GB)로 숫자를 바꿔야 SpaceToReclaim
하며 크기는 GB로 표시됩니다.
이 파일은 ibdata1
아니고 ibdatal
모든 InnoDB 데이터베이스를 포함합니다. 삭제하면 모든 데이터가 손실됩니다.
이를 처리하는 방법에 대한 아이디어 는 MySQL에서 ibdata1 파일을 축소 / 제거하는 방법을 참조하십시오 .