수색…


비고

구성은 다음 세 가지 방법 중 하나로 발생합니다.

  • 명령 행 옵션
  • my.cnf 구성 파일
  • 서버 내에서 변수 설정하기

커맨드 라인 옵션은 mysqld --long-parameter-name=value --another-parameter 형식을 취합니다. 동일한 매개 변수를 my.conf 구성 파일에 둘 수 있습니다. 일부 매개 변수는 MySQL 내에서 시스템 변수를 사용하여 구성 할 수 있습니다. 전체 매개 변수 목록은 공식 문서를 확인하십시오.

변수는 대시 ( - 또는 밑줄 ( _ 가질 수 있습니다. = 주위에 공백이있을 수 있습니다. 많은 수의 K , M , G 는 kilo-, mega-, giga-로 끝낼 수 있습니다. 한 줄에 하나의 설정.

플래그 : 보통 ON1 은 동의어이며 OFF0 . 어떤 깃발은 그 뒤에 아무것도 없다.

my.cnf 설정을 배치 할 때 서버의 모든 설정은 [mysqld] 섹션에 있어야하므로 맹목적으로 설정을 파일의 끝에 추가하지 마십시오. (참고 : 여러 개의 mysql 인스턴스가 하나의 my.cnf를 공유 할 수있는 도구의 경우 섹션 이름이 다를 수 있습니다.)

InnoDB 성능

my.cnf에는 수백 가지 설정이 있습니다. MySQL의 '라이트'사용자에게는별로 중요하지 않습니다.

데이터베이스가 간단 해지면 다음 매개 변수를 설정하는 것이 좋습니다.

innodb_buffer_pool_size

사용 가능한 RAM의 약 70 %로 설정해야합니다 (RAM이 4GB 이상인 경우 작은 VM 또는 골동품 기계가있는 경우 작은 비율). 설정은 InnoDB ENGINE에서 사용하는 캐시의 양을 제어합니다. 따라서 InnoDB의 성능은 매우 중요합니다.

거대한 데이터 삽입을 허용하는 매개 변수

열에 이미지 또는 비디오를 저장해야하는 경우 응용 프로그램에서 필요에 따라 값을 변경해야합니다

max_allowed_packet = 10M

M은 Mb, G는 Gb, K는 Kb

group_concat의 문자열 제한 늘리기

group_concatgroup 에있는 null이 아닌 값을 연결하는 데 사용됩니다. 결과 문자열의 최대 길이는 group_concat_max_len 옵션을 사용하여 설정할 수 있습니다.

SET [GLOBAL | SESSION] group_concat_max_len = val;

GLOBAL 변수를 설정하면 영구적 인 변경이 보장되는 반면 SESSION 변수를 설정하면 현재 세션의 값이 설정됩니다.

최소의 InnoDB 설정

이것은 InnoDB 테이블을 사용하는 MySQL 서버를위한 최소한의 설정입니다. InnoDB를 사용하면 쿼리 캐시가 필요하지 않습니다. 테이블이나 데이터베이스가있는 경우 디스크 공간을 확보 DROP 에디션. SSD를 사용 중이면 플러시는 중복 조작입니다 (SDD는 순차적이지 않습니다).

default_storage_engine = InnoDB
query_cache_type = 0
innodb_file_per_table = 1
innodb_flush_neighbors = 0

동시성

innodb_thread_concurrency 를 무한대 (0)로 설정하여 기본 4 쓰레드 이상을 생성 할 수 있는지 확인하십시오. 이것은 InnoDB가 최적의 실행에 기반하여 결정하도록합니다.

innodb_thread_concurrency = 0
innodb_read_io_threads = 64
innodb_write_io_threads = 64

하드 드라이브 활용

MySQL의 용량 (일반로드) 및 capacity_max (절대 최대)를 IOPS로 설정하십시오. HDD의 기본값은 200이지만, 현재 수천 개의 IOPS가 가능한 SSD를 사용하면이 수치를 조정할 가능성이 있습니다. IOPS를 결정하기 위해 실행할 수있는 많은 테스트가 있습니다. 전용 MySQL 서버를 실행중인 경우 위의 값은 거의 한계치 여야 합니다 . 동일한 시스템에서 다른 서비스를 실행중인 경우 적절하게 할당해야합니다.

innodb_io_capacity = 2500
innodb_io_capacity_max = 3000

RAM 사용률

MySQL이 사용할 수있는 RAM을 설정하십시오. 엄지 손가락의 규칙은 70-80 %이지만, 이것은 MySQL에 전용 인 인스턴스가 있는지 여부와 사용 가능한 RAM의 양에 따라 다릅니다. 사용 가능한 RAM이 많으면 RAM (즉, 자원)을 낭비 하지 마십시오.

innodb_buffer_pool_size = 10G

안전한 MySQL 암호화

기본 암호화 aes-128-ecb ecb는 ECB (전자 코드북) 모드를 사용합니다.이 모드는 안전하지 않으므로 사용하지 않아야합니다. 대신 구성 파일에 다음을 추가하십시오.

block_encryption_mode = aes-256-cbc


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow