Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

설치 후 중요한 MYSQL 성능 조정 및 설정

<시간/>

이 기사에서는 MySQL 설치 후 구현해야 하는 몇 가지 중요한 MySQL 성능 조정 설정에 대해 배우고 논의할 것입니다.

전제조건

MySQL을 이미 설치했다고 가정하고 MySQL의 성능 조정 설정에 대해 알아보기 전에 몇 가지 팁을 제공합니다.

숙련된 IT 담당자라도 실수를 하여 많은 문제를 일으킬 수 있으므로 이 문서에 표시된 권장 사항을 적용하기 전에 문제 또는 문제를 방지하기 위해 아래 항목을 염두에 둘 것입니다.

  • 유익한 방식으로 변경 사항을 추정할 수 있도록 한 번에 하나의 설정만 적용합니다.

  • 거의 모든 변경 사항은 "SET GLOBAL"을 사용하여 런타임 수준에서 변경할 수 있습니다. 이 기능은 가장 쉽고 적용한 변경 사항을 되돌릴 수 있고 문제가 발생하면 되돌릴 수 있습니다. 마지막으로 구성 파일에서 설정하여 영구적인 변경 사항을 적용할 수 있습니다.

  • 서비스 재시작(MySQL) 후에도 구성 변경 사항이 적용되지 않는다면 잘못된 구성 파일 때문일까요? 아니면 설정이 올바른 섹션에 적용됩니까?

  • MySQL은 중복 설정을 허용하지 않습니다. 변경 사항을 추적하려면 버전 관리를 사용하는 것이 좋습니다.

성능 조정 MySQL 설정의 일부

다음은 몇 가지 성능 조정 설정에 대해 배울 수 있는 [mysqld] 섹션의 몇 가지 성능 조정 설정입니다. 설치 시에만 이러한 설정을 변경하는 것이 좋습니다.

innodb_buffer_pool_size − InnoDB를 이용한 설치 직후 살펴보는 매우 중요한 설정입니다. InnoDB는 데이터가 인덱싱되는 캐시된 버퍼 풀로, 대부분의 읽기-쓰기 작업에 대해 디스크 공간을 사용하지 않고 메모리를 확인하고 사용할 수 있는 매우 큰 크기를 가지며 일반적으로 InnoDB 값의 크기는 5입니다. 8GB RAM의 경우 -6GB.

innodb_log_file_size − 이 설정은 redo 로그에 대한 설정입니다. 리두 로그는 크래시 복구 시에도 읽기 및 쓰기가 빠르고 내구성이 있는지 확인합니다. 이전 버전의 MySQL 5.1에서는 더 나은 성능을 위해 매우 큰 리두 로그가 필요하고 작은 redo log는 MySQL의 빠른 크래시 복구를 위한 버전입니다. MySQL 버전 5.5 이후에는 충돌 복구 성능이 향상되었습니다. MySQL 리두 로그 크기의 제한은 MySQL 5.5에서 4GB로 제한되었으며 이제 리두 로그 크기의 크기는 MySQL 5.6에서 제거되었습니다.

최대_연결 수 − "너무 많은 연결" 오류를 방지하려면 max_connections를 늘려야 합니다. 기본 연결은 151입니다. max_connections에 대한 높은 값의 주요 단점은 연결 수가 더 많고 활성 트랜잭션인 경우 서버가 응답하지 않게 만듭니다.

Innodb_log_buffer_size − 이 설정은 아직 커밋되지 않은 트랜잭션의 버퍼 크기입니다. 기본값은 1MB입니다. text/blob 필드가 있는 큰 트랜잭션이 있기 때문에 버퍼 크기가 매우 빠르게 채워지고 추가 입력 및 출력 로드를 트리거하므로 innodb_log_buffer_size를 늘릴 수 있습니다.

Innodb_flush_method − 이 설정은 로그와 데이터가 디스크로 플러시되는 방식을 제어합니다. 대부분의 시나리오에 대해 후기입 캐시 및 데이터 동기화가 있는 RAID 컨트롤러 하드웨어가 있는 경우 가장 좋은 값은 O_DIRECT입니다. Sysbench는 값을 선택하는 데 도움이 되는 좋은 도구입니다.

query_cache_size − 이 설정은 동시성 수준이 보통인 경우에도 볼 수 있는 병목 현상으로 잘 알려져 있습니다. 가장 좋은 옵션은 처음부터 비활성화하는 것입니다. 비활성화하려면 기본적으로 비활성화된 MySQL 5.6 버전을 사용하는 경우 query_cache_size=0을 보내야 합니다. 인스턴스에 대해 Memcache 또는 Redis를 사용하여 인덱싱 속도를 높이는 다른 방법이 있습니다. 쿼리 캐시가 활성화된 애플리케이션을 이미 구성했고 문제가 없다면 쿼리 캐시가 유용하므로 쿼리 캐시를 비활성화하는 데 매우 주의해야 했습니다.

log_bin − 이 설정은 서버를 복제 마스터 서버로 만들고자 할 때 매우 유용합니다. 또한 최신 백업을 복원(지정 시간 복구)하고 바이너리 로그를 적용할 수 있기를 원할 때 단일 서버에 매우 유용합니다. log_bin 로그가 영원히 유지되고 서버의 디스크 공간을 절약하기 위해 오래된 로그를 정리해야 했다면 PURGE BINARY LOGS를 설정하거나 몇 일 후에 log_bin을 지정하여 expire_logs_days 설정을 설정하여 수행할 수 있습니다. 로그는 자동으로 삭제됩니다.

skip_name_resolve − 이 설정은 클라이언트가 MySQL 서버에 연결할 때 완전히 사용됩니다. 서버는 호스트 이름 확인을 수행하고 DNS가 느리면 연결도 매우 느려지므로 서버를 skip_name_resolve로 시작하여 DNS 조회를 비활성화하는 것이 좋습니다. 따라서 GRANT 문을 사용할 때 IP 주소를 사용해야 합니다. 따라서 호스트 이름 대신 이 설정을 기존 애플리케이션 구성에 추가할 때 주의하십시오.

<블록 인용>

위의 기사에서 우리는 log_bins, skip_name_resolve, query_cache_size, innodb_log_buffer_size, max_connections, innodb_log_file_size, innodb_buffer_pool_size를 변경하여 더 나은 성능을 제공하고 MySQL의 읽기 및 쓰기 레벨 속도를 높이는 방법을 배웠습니다.