myisam을 Inodb로 변경 ( mysql mariadb )

DB : Mariadb 10.4.x
현재 운용중인 xinet.kr 워드프레스의 데이터베이스는 Mariadb 10.4 버전이고 기본 엔진은 MyISAM 이다 이것을 InnoDB로 변경해 보자
현재 데이터베이스 엔진 상태

데이터베이스에서 특정 테이블 하나만 엔진이 어떤것으로 되어 있는 확인 해 보자  /기본이 ENGINE=MyISAM 되어 있다

파일 형태 frm MYI MYD  파일이 존재한다 왜 기본 엔진이 myisam 이니깐
frm : 테이블 구조가 저장되어 있는 파일
MYD : 실제 데이터가 저장되어 있는 파일
MYI : Index 정보가 들어있는 파일

일괄 Innodb로 변경하기전에 전체 데이터베이스를 백업 받자

데이터베이스 기본 엔진을 Innodb로 변경하자 ( my.cnf 에서 변경 후  mysql 재시작) 아래처럼
기본엔진과 innodb_file_per_table ON 되어 있어야 한다.

이제 명령어로 테이블을  변경해 보자 / 결과값은 convert-to-innodb.log 에서 확인 할 수 있다 / 별다른 에러없이 성공 (ppassword 패스워드 입력)

자료를 확인해보자 기존과 다르게 ibd 파일이 생성되어있다. 기존 MYI , MYD 파일은 사라지고 / Mariadb 버전이 높아지면서
innodb_file_per_table=1 값이 기본으로 되어 있다. 그래서 테이블 단위로 ibd 파일이 생성

그럼 쿼리로 현재 테이블 엔진상태를 체크해 보자 기본 엔진이 ENGINE=InnoDB 변경된 것을 확인 할 수 있다.

원본 myisam 일때 테이블 큰것의 5개 용량

데이터베이스 전체 용량  ( myisam 기준)

그럼 변경된 innodb 일때는 용량이 어떻게 변했는지 / 전체적으로 용량이 높아짐

용량이 2배 좀 안되게 늘었다. 원인은 tables space 때문에 그럼 왜 ibdata1 파일에 쌓이지 않고 ibd 파일에 바로 쌓이는것이냐.
mariadb의 file_per_table 옵션때문에 그럼 ON 되어 있으면 데이터베이스내에
ibd 파일이 생성이 되고 그게 아니면 ibdata1 파일에 모두 생성 됨

아래처럼 되어 있는 경우에는 ibdata1 파일에 모두 파일을 생성

 

태그

코멘트 쓰기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.

다음의 HTML 태그와 속성을 사용할 수 있습니다:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



배송정보
배송조회를 하시려면 송장번호를 클릭하세요
배송조회
상품명
주문번호
택배사
송장번호