- innodb setting , DB 튜닝
* 수정 방법
- my.ini 나 my.cnf 파일을 수정한다.
C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
- MariaDB의 경우
C:\Program Files\MariaDB 10.3\data\my.ini
innodb_buffer_pool_size=1024M
- 전체 메모리의 50~60% 권장 (3/4)
- 2~3G 이내 권장
innodb_page_size=16k
- page size 변경은 성능에 영향을 미치지 않는다.(기본 16k면 충분)
https://mariadb.com/resources/blog/does-innodb-page-size-matter/
//----------------------------
// 추가 수정
# 초기값=1M
innodb_log_buffer_size=8M
# 초기값=48M
innodb_log_file_size=128M
# group_concat 함수의 제한 늘리기
group_concat_max_len=1024000
#정렬 버퍼 늘리기 (기본=256k)
sort_buffer_size=4024K
//=============
* 설정 확인 방법
SHOW VARIABLES LIKE 'innodb%';
- 상태보기
SHOW STATUS LIKE 'innodb_buffer_pool%';
//========================
* AWS RDS, MySQL DB 설정 보기
-> RDS -> 파라메터 그룹
기본 설정 : 2G 서버에 innodb_buffer_pool_size=1G 로 설정됨
//=============
참고
http://gywn.net/2012/09/mysql-tuning/
innodb_buffer_pool_size
InnoDB에게 할당하는 버퍼 사이즈로 50~60%가 적당하며, 지나치게 많이 할당하면 Swap이 발생할 수 있습니다.
innodb_log_file_size
트랜잭션 로그를 기록하는 파일 사이즈이며, 128MB ~ 256MB가 적당합니다.
innodb_log_files_in_group
트랜잭션 로그 파일 개수로 3개로 설정합니다.
innodb_flush_log_at_trx_commit
서비스 정책에 따라 다르게 설정하겠지만, 저는 일반적으로 2값으로 세팅합니다.
– 0: 초당 1회씩 트랜잭션 로그 파일(innodb_log_file)에 기록
– 1: 트랜잭션 커밋 시 로그 파일과 데이터 파일에 기록
– 2: 트랜잭션 커밋 시 로그 파일에만 기록, 매초 데이터 파일에 기록
innodb_doublewrite
이중으로 쓰기 버퍼를 사용하는지 여부를 설정하는 변수로 활성화 시 innodb_doublewrite 공간에 기록 후 데이터 저장합니다. 저는 활성화합니다.
sync_binlog
트랜잭션 커밋 시 바이너리 로그에 기록할 것인지에 관한 설정이며, 저는 비활성 처리합니다.
'Code > Database (DB)' 카테고리의 다른 글
MySql 시간대 한국으로 변경 (0) | 2019.04.01 |
---|---|
[C#] MySql (0) | 2019.02.11 |
[DB] PpostgreSQL 사용기 (0) | 2019.02.11 |
[SQL] MySql 프로시저(PROCEDURE ) (0) | 2019.02.07 |
[SQL] 서브쿼리(SubQuery) (0) | 2019.02.07 |