큰 (> 12GB) DB를 저장하고있는 CentOS에서 MySQL 서버를 운영하고 있습니다. 성능상의 이유로 InnoDB로 옮겨가는 것이 좋습니다. 서버 사용량이 많을 때 DB를 사용하는 응용 프로그램이 응답하지 않는 경우가 있습니다.큰 테이블을 InnoDB로 바꾸는 것
나는이 책을 읽었으며 InnoDB로 테이블을 변경하는 ALTER 명령은 프로세스에서 서버를 망가뜨릴 가능성이 높습니다. 최대한 멀리 볼 수, 필요한 단 하나의 변화는 다음과 같은 명령을 사용하는 것입니다 : 내가 테스트 서버에서이 작업을 실행 한
ALTER TABLE t ENGINE=InnoDB
을하고는 테이블의 가장 큰에서 약 26 분 복용, 미세 완료 할 것 그 변환해야합니다. 추천 어떤 변화
- 은 InnoDB 테이블의 추가 성능을 활용하는 MySQL의 설정을 만들 수 :
는 다음 알고 내가 관심이 생산 시스템에서이 작업을 실행하지 있습니까? 현재 서버에는 3GB가 InnoDB 캐시에 할당되어 있습니다. 추가 RAM을 설치 한 후이 용량을 15GB로 늘릴 것을 고려하고있었습니다.
- 이 변경으로 인해 서버에해야 할 일이 있습니까?
[InnoDB 버퍼 풀] (http://dev.mysql.com/doc/refman/5.5/en/innodb-buffer-pool.html)을 의미합니까? 또한, 미래의 두통을 피하고 [table per file] (http://dev.mysql.com/doc/refman/5.6/en/innodb-multiple-tablespaces.html)을 사용하십시오. –
'innodb_buffer_pool_size'는 확실히 성능을 좌우합니다. SSD도 있습니다 (RAID 등). 테이블 당 파일 수는 도움이 될 수 있지만 동시성이 높은 서버에 큰 문제가 생길 수 있으므로 아직 변경하지 않을 것입니다. 또는 성능을 위해 - 더 많은 성능을 자랑하는 드롭 인 대체품 인 [TokuDB] (http://www.tokutek.com/tokudb-for-mysql/)를 확인하십시오. –
@MarcusAdams 그렇습니다. InnoDB 버퍼 풀을 말했습니다. 고마워요. SSD 캐시를 사용하는 새 서버로 마이그레이션하고 있지만 이전에는 조금 오래 실행하는 것이 필요합니다. – btongeorge