>  기사  >  데이터 베이스  >  MySQL Advanced 16 - 메모리 최적화

MySQL Advanced 16 - 메모리 최적화

黄舟
黄舟원래의
2017-01-14 11:45:421227검색

1. MyISAM 메모리 최적화

MyISAM 스토리지 엔진은 key_buffer를 사용하여 인덱스 모듈을 캐시하여 인덱스 읽기 및 쓰기 속도를 높입니다. MyISAM 테이블의 데이터 블록의 경우 mysql에는 특별한 캐싱 메커니즘이 없으며 운영 체제의 IO 캐시에 전적으로 의존합니다.

1. key_buffer_size 설정

key_buffer_size는 MyISAM 인덱스 블록 캐시 파티션의 크기를 결정합니다. MyISAM 테이블의 액세스 효율성에 직접적인 영향을 미칩니다. 일반적인 MyISAM 데이터베이스의 경우 사용 가능한 메모리의 1/4을 key_buffer_size에 할당하는 것이 좋습니다:

key_buffer_size=2G

2. 읽기_버퍼_크기

MyISAM 테이블을 순차적으로 자주 스캔해야 하는 경우 read_buffer_size 값을 늘려 성능을 향상시킬 수 있습니다. 하지만 read_buffer_size는 각 세션마다 배타적이라는 점에 유의해야 합니다. 기본값을 너무 크게 설정하면 메모리 낭비가 발생합니다.

3. read_rnd_buffer_size

order by 절이 있는 SQL과 같이 정렬이 필요한 MyISAM 테이블 쿼리의 경우 read_rnd_buffer_size 값을 적절하게 늘리면 해당 SQL의 성능이 향상될 수 있습니다. 하지만 read_rnd_buffer_size는 배타적이라는 점에 유의해야 합니다. 기본 설정 값이 너무 크면 메모리 낭비가 발생합니다.

2. InnoDB 메모리 최적화

InnoDB는 메모리 영역을 I/O 캐시 풀로 사용합니다. 이 캐시 풀은 InnoDB 인덱스 블록을 캐시하는 데뿐만 아니라 InnoDB 데이터 블록을 캐시하는 데도 사용됩니다.

1. Innodb_buffer_pool_size 설정

변경량에 따라 InnoDB 스토리지 엔진 테이블 데이터 및 인덱스 데이터의 최대 캐시 크기가 결정됩니다.

2. innodb_log_buffer_size

InnoDB가 트랜잭션이 커밋되기 전에 디스크에 불필요한 로그 쓰기 작업을 수행하는 것을 방지할 수 있는 InnoDB 리두 로그 캐시의 크기를 결정합니다.

3. 동시성과 관련된 MySQL 매개변수 조정

1. max_connections 조정

동시 연결 개선

2. thread_cache_size 조정

데이터베이스 연결 속도를 높이기 위해 MySQL은 재사용을 위해 특정 수의 고객 서비스 스레드를 캐시합니다. mysql 캐시 클라이언트 스레드 수는 thread_cache_size 매개변수를 통해 제어할 수 있습니다.

3. innodb_lock_wait_timeout

InnoDB 트랜잭션이 행 잠금을 기다리는 시간을 제어합니다. 빠르게 처리되는 SQL 문을 위해 행 잠금 대기 시간 초과를 늘려 대규모 롤백 작업을 방지할 수 있습니다.

참고: 위의 내용은 모두 MySQL 디렉터리의 my.ini 파일에 다시 작성되었습니다.

위 내용은 MySQL Advanced 16 - Memory Optimization의 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


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