2016-12-08 12 views
0

4GB RAM (MariaDB가 포함 된 Centos 7.2)의 VPS (ssd)에서 문제없이 하루에 몇 번씩 업데이트되는 큰 테이블이 있습니다.SELECT 쿼리에 대한 my.cnf 최적화 MariaDB

my.cnf를 최적화하여 해당 테이블의 SELECT 쿼리가 더 빨리 실행되도록하고 싶습니다.

나는 my.cnf의 지금까지이 있습니다

max_allowed_packet=1024M 
query_cache_size=256M 
innodb_buffer_pool_size=3072M 

내가 피드를 가져올 때 최대 값을 타격 유지하기 때문에 높은 값의 max_allowed_packet를 설정했다.

캐싱에 내가 query_cache_type을 = 256M를 설정하고 innodb_buffer_pool_size = 3072M

(조금 빠르게) 큰 차이를 만들 것 같지 않습니다. 하나의 쿼리는 약 9 초 였고 이제는 8 초가 걸립니다.

통찰력을 얻으실 수 있습니다!

+0

난 이 질문은 아마도 틀린 나무를 짖고 있기 때문에 주제를 벗어난 것으로이 질문을 끝내기 위해 투표합니다. 이 문제는 색인 또는 색인의 부족으로 인해 발생할 수 있습니다. – e4c5

답변

1

max_allowed_packet=1024M - 이것은 다른 메모리 사용에서 벗어납니다.
query_cache_size=256M - 아니요. 이 크기로 물건을 느리게합니다. 이하 50M
innodb_buffer_pool_size=3072M이 - 첫 번째 항목으로 촬영에만 4GB의 RAM, 그리고 1G 때문에, 단지 1G

일반 규칙이 설정합니다. "당신은 성능 문제 중하지 조정 방법을 할 수 있습니다" 그러나 은 임의로 조정할 수있는 값을 변경하여 스왑 핑으로 이어질 수 있다는 것을 이해하지 않고 성능을 손상시킬 수 있습니다. 그리고 그 스와핑은 MySQL 성능에 terrrrrible입니다.

성능 문제로 인해 쿼리와 테이블 (SHOW CREATE TABLE)을 확인해야합니다. 때로는 '복합'색인을 추가하는 것만 큼 간단합니다. 때로는 간단한 수정으로 인해 쿼리의 속도가 10 배 이상 빨라질 수 있습니다.

'대용량 테이블 가져 오기'에 대해 알려주십시오. 완전히 다시로드하고 있습니까? (그렇다면, 토론 # 73); 방대한 업데이트 : # 49; SELECTs 동시에 테이블 타격 : # 61. 다른?

(나는 그 숫자를 만들었지 만, 내가 대답이 포럼에 어딘가에 있는지 확인 느낄 당신이 그들을 찾을 수없는 경우,.의 당신의 정보를 볼 수 있도록 우리는 바퀴를 재발견 할 수 있습니다.)