2014-12-16 5 views
1

큰 (> 12GB) DB를 저장하고있는 CentOS에서 MySQL 서버를 운영하고 있습니다. 성능상의 이유로 InnoDB로 옮겨가는 것이 좋습니다. 서버 사용량이 많을 때 DB를 사용하는 응용 프로그램이 응답하지 않는 경우가 있습니다.큰 테이블을 InnoDB로 바꾸는 것

나는이 책을 읽었으며 InnoDB로 테이블을 변경하는 ALTER 명령은 프로세스에서 서버를 망가뜨릴 가능성이 높습니다. 최대한 멀리 볼 수, 필요한 단 하나의 변화는 다음과 같은 명령을 사용하는 것입니다 : 내가 테스트 서버에서이 작업을 실행 한

ALTER TABLE t ENGINE=InnoDB 

을하고는 테이블의 가장 큰에서 약 26 분 복용, 미세 완료 할 것 그 변환해야합니다. 추천 어떤 변화

  1. 은 InnoDB 테이블의 추가 성능을 활용하는 MySQL의 설정을 만들 수 :

    는 다음 알고 내가 관심이 생산 시스템에서이 작업을 실행하지 있습니까? 현재 서버에는 3GB가 InnoDB 캐시에 할당되어 있습니다. 추가 RAM을 설치 한 후이 용량을 15GB로 늘릴 것을 고려하고있었습니다.

  2. 이 변경으로 인해 서버에해야 할 일이 있습니까?
+0

[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)을 사용하십시오. –

+0

'innodb_buffer_pool_size'는 확실히 성능을 좌우합니다. SSD도 있습니다 (RAID 등). 테이블 당 파일 수는 도움이 될 수 있지만 동시성이 높은 서버에 큰 문제가 생길 수 있으므로 아직 변경하지 않을 것입니다. 또는 성능을 위해 - 더 많은 성능을 자랑하는 드롭 인 대체품 인 [TokuDB] (http://www.tokutek.com/tokudb-for-mysql/)를 확인하십시오. –

+0

@MarcusAdams 그렇습니다. InnoDB 버퍼 풀을 말했습니다. 고마워요. SSD 캐시를 사용하는 새 서버로 마이그레이션하고 있지만 이전에는 조금 오래 실행하는 것이 필요합니다. – btongeorge

답변

1

Percona MySQL 또는 MariaDB를 사용하는 것이 좋습니다. 이 두 가지 도구는 InnoDB를 최대한 활용하는 데 도움이되는 도구와 데이터베이스를 더 자세히 진단하고 최적화하는 데 도움이되는 도구를 제공합니다 (예 : Percona의 온라인 스키마 변경 도구를 사용하면 가동 중지 시간없이 테이블을 변경할 수 있음).

innodb_buffer_pool_size가 조정할 가장 중요한 매개 변수 중 하나 인 것에 대부분 동의한다고 생각합니다 (일반적으로 사람들은 사용 가능한 총 메모리의 70-80 % 정도를 설정하지만 이는 마법의 숫자가 아닙니다) . 그래도 중요한 설정 변수는 아니며 실제로 run_really_fast 설정은 없습니다.

또한, 당신은 확실히 MySQL의 문서 자체 (http://dev.mysql.com/doc/refman/5.6/en/optimizing-innodb.html)에서 제공하는 도움말을 확인해야합니다 당신은 또한 innodb_buffer_pool_instances에주의를 기울여야한다 (이 주제에 대한 좋은 논의가 https://dba.stackexchange.com/questions/194/how-do-you-tune-mysql-for-a-heavy-innodb-workload에있다). InnoDB 적중률에주의를 기울이는 것도 좋은 생각입니다 (DBA Stackexchange의 Rolado는이 주제에 대한 훌륭한 대답을 가지고 있습니다, 예 : https://dba.stackexchange.com/questions/65341/innodb-buffer-pool-hit-rate). 느린 쿼리 로그를 신중하게 분석하십시오. 그 나중을 향해, 나는 Percona를 다시 한번 살펴볼 것을 권할 것이다. 그들의 느린 쿼리 분석기는 최고 수준이며 SQL 성능을 최적화 할 때 정말 도움이됩니다.

+1

우수 답변 - 덕분에 대단히 :) – btongeorge

+0

기꺼이 도와 드리겠습니다. – evanv

관련 문제