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를 사용할 것