パラメータで言うとinnodb_flush_method っていう奴。 ようはトランザクションログなどをディスクに反映するときにfsync(2)を使うか、そもそもファイルをopen(2)するときにカーネルのバッファをバイパスするようなオプションを使うかの違い。デフォルトだとfsyncdataになるため前者になるが、Linuxの場合O_DIRECTを指定することで後者の動作となる。 InnoDBはI/Oのバッファリングを独自に行うことが出来るので、OSが提供するキャッシュを切ってしまった方がメモリの無駄が少ない。 例によって使ったベンチマークはsysbench-0.4.8、MySQLは5.0.37 Threads fdatasync O_DIRECT 1 19.8 20.31 2 20.88 21.04 3 21.06 20.64 4 20.89 20.78 5 21.15 21.03 6