>데이터 베이스 >MySQL 튜토리얼 >MySQL에 적합한 엔진 선택 및 엔진 변환에 대한 자세한 설명

MySQL에 적합한 엔진 선택 및 엔진 변환에 대한 자세한 설명

黄舟
黄舟원래의
2017-09-21 11:00:121133검색

올바른 엔진을 어떻게 선택하나요? 간단한 요약은 다음과 같습니다. "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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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