문제

안녕하세요 저는 MySQL 5.0.x를 사용하고 있습니다

나는 많은 테이블을 Myisam에서 innodb로 바꿨습니다.

Myisam 테이블을 사용하여 1 분 innodb로 데이터베이스를 설치하려면 15 분 동일한 데이터베이스를 설치합니다

InnoDB가 왜 그렇게 오래 걸립니까?

속도를 높이려면 어떻게해야합니까?

데이터베이스 설치는 다음 단계를 수행합니다

1) 스키마를 삭제합니다

2) 스키마를 만듭니다

3) 테이블을 만듭니다

4) 저장된 절차를 만듭니다

5) 기본 데이터를 삽입하십시오

6) 저장된 절차를 통해 데이터를 삽입하십시오

편집하다:

기본 데이터를 삽입하려면 대부분의 시간이 걸립니다.

도움이 되었습니까?

해결책

삽입 데이터 단계를 수정하여 시작시 트랜잭션을 시작하고 끝에 커밋하십시오. 당신은 개선을 얻을 것입니다. 나는 그것을 보장합니다. (데이터가 많으면 트랜잭션을 테이블 당까지 중단 할 수 있습니다.)

응용 프로그램이 거래를 전혀 사용하지 않으면 매개 변수를 설정해야합니다. innodb_flush_log_at_trx_commit To 2. 이것은 거의 확실하게 Auto_commit을 활성화 할 수 있기 때문에 많은 성능을 제공하며 InnoDB의 기본 매개 변수가 구성된 것보다 더 많은 트랜잭션이 생성됩니다. 이 설정은 모든 커밋의 디스크 버퍼를 불필요하게 플러시하는 것을 중지합니다.

다른 팁

15 분은 나에게 과도하지 않은 것처럼 보이지 않습니다. 결국, 그것은 일회성 비용입니다.

확실하지 않지만 설명의 일부가 참조 무결성이 자유롭지 않다고 생각합니다. Innodb는 그것을 보장하기 위해 더 많은 일을해야하므로 물론 더 많은 시간이 걸릴 것입니다.

테이블을 작성한 후 제약 조건을 추가하기 위해 스크립트를 변경해야 할 수도 있습니다.

Duffymo가 말했듯이 데이터를 삽입하기 전에 제약 조건 (인덱스 및 예심/기본 키)을 비활성화합니다.

저장 프로 시저를 통해 삽입 된 데이터가 많이 사용되기 전에 몇 가지 인덱스를 복원해야 할 수도 있습니다. 고르다 진술

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top