당신이 함께 갈 수 있어야 IMHO
innodb_buffer_pool_size=5G
서버 OS에 충분한 양의 RAM과 DB 연결을위한 메모리가있는 RAM의 62.5 %
@kvisle은 mysqltuner.pl을 사용하는 것이 좋습니다. 이 스크립트는 join_buffer_size, sort_buffer_size, read_buffer_size 및 read_rnd_buffer_size 전용으로 RAM의 양을 판단하는 데 탁월합니다. 함께 추가 된 4 개의 버퍼에 max_connections를 곱합니다. 이 답변은 정적 버퍼 (innodb_buffer_pool_size + key_buffer_size)에 추가됩니다. 합산 합계가보고됩니다. 그 합이 RAM의 80 %를 초과하면 버퍼 크기를 줄여야합니다. mysqltuner.pl은 이와 관련하여 매우 도움이 될 것입니다.
모든 데이터가 InnoDB이므로 key_buffer_size (MyISAM 인덱스 용 키 캐시 버퍼)를 매우 낮게 만들 수 있습니다 (64M 권장).
다음은 권장 크기 innodb_buffer_pool_size를 계산하기 위해 DBA StackExchange에서 작성한 게시물 입니다.
업데이트 2011-10-15 19:55 EDT
5GB의 데이터가 있다는 것을 알고 있다면 첫 번째 권장 사항은 정상입니다. 그러나 한 가지를 추가하는 것을 잊었습니다.
[mysqld]
innodb_buffer_pool_size=5G
innodb_log_file_size=1280M
로그 파일 크기는 InnoDB 버퍼 풀의 25 % 여야합니다.
업데이트 2011-10-16 13:36 EDT
25 % 규칙은 두 개의 로그 파일 사용을 엄격하게 기반으로합니다. 여러 개의 innodb 로그 파일을 사용할 수 있지만 일반적으로 두 개가 가장 효과적입니다.
다른 사람들은 25 %를 사용하여 표현했습니다
그러나 모든 공정성에서, 원래 InnoBase Oy 회사의 누군가는 더 큰 InnoDB 버퍼 풀을 가지고 있기 때문에 25 % 규칙을 사용하지 않는다고 표현했습니다 .
당연히, 많은 양의 RAM이 있으면 25 % 규칙이 작동하지 않습니다. 실제로 2 개의 로그 파일 만 사용하여 허용되는 가장 큰 innodb_log_file_size는 2047M입니다. 로그 파일의 결합 된 크기는 4G (4096M)보다 작아야하기 때문입니다.
사례 : 내 고용주의 클라이언트 중 하나에 RAM이 192GB 인 DB 서버가 있습니다. 48G 로그 파일을 가질 방법이 없습니다. innodb 로그 파일, 최대 2047M에 최대 파일 크기를 사용합니다. 내 대답에 대한 @Kvisle의 의견은 단순히 두 개의 로그 파일로 자신을 제한 할 필요가 없다는 링크를 제공합니다. N 개의 로그 파일이 있으면 총 4G를 가질 수 없습니다. 내 25 % 규칙은 완벽한 세상에 있습니다 (8GB 이하의 DB 서버).