innodb_flush_method
InnoDB 데이터 파일 및 로그 파일에 데이터 플러쉬하는 방법 설정
https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_flush_method
확인
SHOW VARIABLES WHERE VARIABLE_NAME LIKE 'innodb_flush_method';
/*
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| innodb_flush_method | |
+---------------------+-------+
1 row in set (0.01 sec)
*/
관련 내용
|설정값|설정값 (숫자)|설명|
|-|-|-|
|fsync
|0
|시스템 호출인 fsync()
를 사용하여 데이터, 로그 파일을 플러쉬|
|O_DSYNC
|1
|데이터 파일은 fsync()
, 로그 파일은 O_DSYNC
로 플러쉬함|
|littlesync
|2
|내부 성능 테스트용|
|nosync
|3
|내부 성능 테스트용|
|O_DIRECT
|4
|O_DIRECT
로 데이터 파일을 열고 fsync()
로 데이터, 로그 파일을 플러쉬 (일부 리눅스나 FreeBSD, Solaris에서 사용 가능하며 Solaris의 경우 directio()
)|
|O_DIRECT_NO_FSYNC
|4
|O_DIRECT
방식과 동일하나 쓰기 작업 후 fsync()
를 호출하지 않음|
- 유닉스 계열 시스템에서는
fsync
, 윈도우에서는 버퍼링 되지 않음 - 숫자 설정은 8.0 이상에서만 가능
- 8.0.14 이전 버전에서는 XFS나 EXT4와 같은 파일 시스템에서 메타데이터 변경 내용을 동기화하는데
fsync()
시스템 호출이 적합하지 않음.fsync()
이 필요한지 확실치 않는 경우O_DIRECT
를 사용할 것