>  기사  >  데이터 베이스  >  MySQL 성능 최적화를 위한 10가지 매개변수 상세 소개

MySQL 성능 최적화를 위한 10가지 매개변수 상세 소개

黄舟
黄舟원래의
2016-12-13 17:13:231097검색

(1), back_log:
MySQL에 필요한 연결 수입니다. 이는 메인 MySQL 스레드가 짧은 시간 내에 많은 연결 요청을 받은 후, 메인 스레드가 연결을 확인하고 새 스레드를 시작하는 데 약간의 시간이 걸릴 때 작동합니다.
back_log 값은 MySQL이 일시적으로 새 요청에 대한 응답을 중지하기 전에 짧은 시간 동안 스택에 저장할 수 있는 요청 수를 나타냅니다. 짧은 시간 내에 많은 연결이 예상되는 경우에만 연결을 늘려야 합니다. 즉, 이 값은 들어오는 TCP/IP 연결에 대한 청취 대기열의 크기입니다. 운영 체제에는 이 대기열 크기에 대한 자체 제한이 있습니다. back_log를 운영 체제 제한보다 높게 설정하려고 해도 아무런 효과가 없습니다.
호스트 프로세스 목록을 관찰하고 연결할 수 있는 264084 | xxx.xxx.xxx | NULL | NULL | 백_로그. 기본값은 50인데 저는 500으로 변경했습니다.

(2), Interactive_timeout:
서버가 대화형 연결을 닫기 전에 작업을 기다리는 시간(초)입니다. 대화형 클라이언트는 mysql_real_connect()에 CLIENT_INTERACTIVE 옵션을 사용하는 클라이언트로 정의됩니다. 기본값은 28800인데, 저는 7200으로 변경했습니다.

(3), key_buffer_size:
인덱스 블록은 모든 스레드에 의해 버퍼링되고 공유됩니다. key_buffer_size는 인덱스 블록에 사용되는 버퍼 크기입니다. 인덱스를 더 잘 처리하려면(모든 읽기 및 다중 쓰기에 대해) 여유가 있는 만큼 늘리십시오. 너무 크게 만들면 시스템이 페이징을 시작하고 속도가 정말 느려집니다. 기본값은 8388600(8M)이고, 내 MySQL 호스트의 메모리는 2GB이므로 402649088(400MB)로 변경했습니다.

(4), max_connections:
허용되는 동시 클라이언트 수입니다. 이 값을 늘리면 mysqld에 필요한 파일 설명자 수가 늘어납니다. 이 숫자를 늘려야 합니다. 그렇지 않으면 너무 많은 연결 오류가 자주 표시됩니다. 기본값은 100인데 1024로 변경했습니다.

(5), Record_buffer:
순차 스캔을 수행하는 각 스레드는 스캔하는 각 테이블에 대해 이 크기의 버퍼를 할당합니다. 순차 스캔을 많이 수행하는 경우 이 값을 늘리는 것이 좋습니다. 기본값은 131072(128K)인데 16773120(16M)으로 변경했습니다

(6), sort_buffer:
정렬해야 하는 각 스레드는 이 크기의 버퍼를 할당합니다. 이 값을 늘리면 ORDER BY 또는 GROUP BY 작업 속도가 빨라집니다. 기본값은 2097144(2M)인데, 저는 16777208(16M)로 변경했습니다.

(7), table_cache:
모든 스레드에 대해 열려 있는 테이블 수입니다. 이 값을 늘리면 mysqld에 필요한 파일 설명자 수가 늘어납니다. MySQL에는 각각의 고유한 열린 테이블에 대해 2개의 파일 설명자가 필요합니다. 기본값은 64인데 512로 변경했습니다.

(8), thread_cache_size:
재사용 가능한 스레드 개수입니다. 존재하는 경우 캐시에서 새 스레드를 가져오고, 연결이 끊어졌을 때 공간이 있으면 클라이언트의 스레드를 캐시에 배치합니다. 새 스레드가 많은 경우 이 변수 ​​값을 사용하여 성능을 향상시킬 수 있습니다. Connections 및 Threads_created 상태의 변수를 비교하여 이 변수의 역할을 확인할 수 있습니다. 저는 80으로 설정했습니다.

(9) Mysql 검색 기능
mysql을 사용하여 검색합니다. 대소문자를 구분하지 않고 중국어로 검색하는 것이 목적입니다.
mysqld set=gb2312를 시작할 때 --default-character-를 지정하면 됩니다.

(10), wait_timeout:
서버가 연결을 닫기 전에 연결에 대한 작업을 기다리는 시간(초)입니다. 기본값은 28800인데, 저는 7200으로 변경했습니다.

참고: 매개변수 조정은 /etc/my.cnf 파일을 수정하고 MySQL을 다시 시작하여 수행할 수 있습니다. 이는 비교적 조심스러운 작업이며, 위의 결과는 단지 제 의견 중 일부일 뿐입니다. 호스트의 하드웨어 조건(특히 메모리 크기)에 따라 추가로 수정할 수 있습니다.

읽어주셔서 정말 감사합니다! 더 많은 관련 글을 보고 싶으시다면 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.