구성 파일 추출의 일부 관점을 얻으려면 기본값 ( 1 , 2 ) 과 비교했습니다 . 표기법에는 매개 변수 뒤에 값과 기본 값이 괄호로 표시됩니다.
key_buffer_size = 128M (8M)
max_allowed_packet = 5M (4M)
table_open_cache = 256 (2000)
sort_buffer_size = 10M (2M)
read_buffer_size = 20M (1M)
read_rnd_buffer_size = 10M (2M)
myisam_sort_buffer_size = 64M (8M)
thread_cache_size = 8 (-1)
query_cache_size= 30M (0/1M)
thread_concurrency = 8 (10)
bulk_insert_buffer_size = 256 (8M)
innodb_buffer_pool_size = 5G (128M)
innodb_additional_mem_pool_size = 1G (8M)
innodb_log_buffer_size = 1G (8M)
innodb_log_file_size = 1G (5M)
innodb_file_per_table = 1 (Off/On)
보시다시피 대부분의 캐시가 상당히 증가했습니다. 하지만 그게 말이 되나요? DB가 InnoDB 엔진을 사용하고 있다고 말했습니다. 위의 문서에 따르면 key_buffer_size
, read_buffer_size
, bulk_insert_buffer_size
단지의 MyISAM 데이터베이스에 적용됩니다. 임시 공간이 실행될 때마다 확실하지 않습니다.
myisam_sort_buffer_size
문서에 다음과 같이 명시되어 있기 때문에 사용 이 거꾸로 나타납니다 The size of the buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.
.
또한 당신은 크게 귀하의 DB 사용 패턴에 의존하는 것 같다 다음 설정을 사용하고 max_allowed_packet
, table_open_cache
, thread_cache_size
, innodb_log_buffer_size
하지만 당신은 사용 패턴에 대해 아무 말도하지 않았다. 따라서 실제로 무엇을하는지 살펴보고 DB의 사용 패턴과 비교하기 위해 위의 문서를 살펴보십시오.
그주의 sort_buffer_size
및 read_rnd_buffer_size
세션 당 예약되어 있습니다. MyISAM 매개 변수 중 일부도 마찬가지이므로 각 세션마다 약간의 오버 헤드가 발생합니다. 다시 실제 사용 패턴을 평가해야합니다.
이제 지정한 InnoDB 설정에 대해 innodb_additional_mem_pool_size
더 이상 사용되지 않습니다. 수정 줄 이유는 분명하지 않다 innodb_log_file_size
, innodb_file_per_table
그 변화에 대한 이유가 무엇인지 확실하지. 후자는 기본값 On
일까요? 나머지 설정 innodb_buffer_pool_size
을 이와 같이 높은 값으로 설정하면 사용을 고려할 수도 innodb_buffer_pool_instances
있습니다.
전반적으로 그것은 당신이 무언가를 시도했지만 작동하지 않은 것처럼 보입니다. 귀하의 의견에 따르면 연결을 수락하지 않거나 전혀 발생하지 않는 서비스의 책임을 파악하기 위해 MySQL 로그 파일을 보지조차 못했습니다. 실제로 DB 성능을 최적화하려면 그렇게해야합니다. 쿼리 성능을 높이고 실제로 DB에서 어떤 쿼리가 실행되고 있는지 알아 보려면 테이블에 추가 인덱스를 사용하는 것이 좋습니다. 또한 연결 수와 쿼리 크기 측면에서 DB의 사용 패턴을 이해하려고 노력하십시오.
1G (Max 4GB) larger the file recovery slow.
무슨 말을할지 고민하지 않고 붙여 넣은 것으로 보입니다.