집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에 적합한 엔진 선택 및 엔진 변환에 대한 자세한 설명
올바른 엔진을 어떻게 선택하나요? 간단한 요약은 다음과 같습니다. "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 =
이 구문은 다음에 적용됩니다. 모든 저장소 엔진이지만 실행하는 데 시간이 오래 걸립니다.
변환 테이블의 스토리지 엔진은 원래 엔진과 관련된 모든 기능을 잃게 됩니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!