>  기사  >  데이터 베이스  >  MySQL에 적합한 엔진을 선택하고 엔진 변환을 수행하는 방법

MySQL에 적합한 엔진을 선택하고 엔진 변환을 수행하는 방법

一个新手
一个新手원래의
2017-09-30 10:25:46992검색

올바른 엔진을 어떻게 선택하나요? 간단한 요약은 다음과 같습니다. "InnoDB에 없는 일부 기능을 사용해야 하고 이를 대체할 수 있는 다른 방법이 없는 한 InnoDB 엔진을 우선적으로 사용해야 합니다. "

꼭 필요한 경우가 아니면, 여러 스토리지 엔진을 혼합하는 것은 권장되지 않습니다. 그렇지 않으면 일련의 복잡한 문제와 일부 잠재적인 버그가 발생할 수 있습니다.

다른 엔진을 사용할 때 고려해야 할 몇 가지 주요 요소:

1. 트랜잭션

트랜잭션 지원이 필요한 경우 현재 InnoDB 또는 XtraDB가 가장 안정적입니다. 트랜잭션이 필요하지 않고 주요 작업이 SELECT 및 INSERT인 경우 MyISAM이 좋은 선택입니다.

2. Backup

온라인 핫백업이 필요하다면 InnoDB가 기본입니다.

3. Crash Recovery

데이터의 양이 상대적으로 많은 경우, 시스템 크래시 이후 어떻게 신속하게 복구할 것인지가 고려되어야 할 문제입니다. 많은 사람들이 InnoDB를 선택하지 않더라도 말이죠. 거래 지원이 필요합니다.引 的 변환 테이블의 엔진:


1.ALTER TABLE

가장 쉬운 방법은 Alter Table 문입니다:

 mysql> ALTER TABLE mytable ENGINE = InnoDB;
이 구문은 모든 스토리지 엔진에 적합하지만 시간이 오래 걸립니다.

변환 테이블의 스토리지 엔진은 원래 엔진과 관련된 모든 기능을 잃게 됩니다.

2. 내보내기 및 가져오기

mysqldump 도구를 사용하여 데이터를 파일로 내보낸 다음 파일에서 CREATE TABLE 문의 저장소 엔진을 수정할 수 있습니다. 테이블 수정에 주의하세요. 이름.

동시에 mysqldump 도구는 데이터 손실을 방지하기 위해 기본적으로 CREATE TABLE 문 앞에 DROP TABLE 문을 자동으로 추가한다는 점에 유의하세요.

3. 생성 및 쿼리

첫 번째와 두 번째 방법을 결합하여 먼저 새로운 스토리지 엔진 테이블을 생성한 후 INSTER...SELECT 구문을 사용하여 데이터를 가져옵니다.

         mysql> CREATE TABLE innodb_table LIKE myisam_table;
       mysql>ALTER TABLE innodb_table ENGINE=InnoDB;
       mysql>INSTER INTO innodb_table SELECT * FROM myisam_table;
데이터 양이 많은 경우 를 사용하면 일괄 처리하고 각 데이터에 대해 트랜잭션 제출 작업을 수행하여 대규모 트랜잭션으로 인한 실행 취소를 방지할 수 있습니다. Percona Toolkit은 수동 작업으로 인해 발생하는 오류를 방지하기 위해 간단하고 편리하게 실행할 수 있는 pt-online-schema-change 도구를 제공합니다.

위 내용은 MySQL에 적합한 엔진을 선택하고 엔진 변환을 수행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.