O_DIRECT模式：数据文件的写入操作是直接从mysql innodb buffer到磁盘的，并不用通过操作系统的缓冲，而真正的完成也是在flush这步,日志还是要经过OS缓冲
?Defines the method used to flush data to InnoDB data files and log files, which can affect I/O throughput.
If innodb_flush_method is set to NULL on a Unix-like system, the fsync option is used by default. If innodb_flush_method is set to NULL on Windows, the async_unbuffered option is used by default.
The innodb_flush_method options for Unix-like systems include:
??? fsync: InnoDB uses the fsync() system call to flush both the data and log files. fsync is the default setting.
??? O_DSYNC: InnoDB uses O_SYNC to open and flush the log files, and fsync() to flush the data files. InnoDB does not use O_DSYNC directly because there have been problems with it on many varieties of Unix.
??? littlesync: This option is used for internal performance testing and is currently unsupported. Use at your own risk.
??? nosync: This option is used for internal performance testing and is currently unsupported. Use at your own risk.
??? O_DIRECT: InnoDB uses O_DIRECT (or directio() on Solaris) to open the data files, and uses fsync() to flush both the data and log files. This option is available on some GNU/Linux versions, FreeBSD, and Solaris.
??? O_DIRECT_NO_FSYNC: InnoDB uses O_DIRECT during flushing I/O, but skips the fsync() system call afterward. This setting is suitable for some types of file systems but not others. For example, it is not suitable for XFS. If you are not sure whether the file system you use requires an fsync(), for example to preserve all file metadata, use O_DIRECT instead.
The innodb_flush_method options for Windows systems include:
??? async_unbuffered: InnoDB uses Windows asynchronous I/O and non-buffered I/O. async_unbuffered is the default setting on Windows systems.
??? normal: InnoDB uses simulated asynchronous I/O and buffered I/O.
??? unbuffered: InnoDB uses simulated asynchronous I/O and non-buffered I/O.