답변:
ibdata1 파일은 InnoDB 인프라의 시스템 테이블 스페이스입니다.
InnoDB에 필수적인 정보를위한 몇 가지 클래스가 포함되어 있습니다.
innodb_file_per_table 을 활성화하여 ibdata1에서 데이터 및 색인 페이지를 이혼 할 수 있습니다 . 이렇게하면 새로 작성된 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이 권장됩니까?ib_logfile0
, ib_logfile1
)당신이 무엇을 알고 싶은 경우 ib_logfile0
와 ib_logfile1
위해, 그들은 InnoDB의 리두 로그입니다. mysqld가 정상적으로 종료 될 때까지 절대 지우거나 크기를 조정해서는 안된다 . mysqld가 충돌하면 mysqld를 시작하십시오. 그것은에서 읽 ib_logfile0
와 ib_logfile1
의 이중 쓰기 버퍼에 게시되지 않은 모든 데이터 변경 내용을 확인 ibdata1
. 변경 사항을 재생 (재실행)합니다. 그들이 재생되고 저장되면, mysqld는 새로운 DB 연결을위한 준비가됩니다.
innodb_file_per_table disabled, Data/Index Pages Stored in /var/lib/mysql/mydb/mytable.ibd
그리고 innodb_file_per_table enbled, Data/Index Pages Stored in ibdata1
그것을해야하지, 그 반대해야 하는가?