- 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
Posted by codens