RDBMSのトランザクションの上限

複数の変更を1つのトランザクションにまとめてください。InnoDB は、もしトランザクションがデータベースに変更を行うなら、各トランザクション コミットの際にディスクにログをフラッシュしなければいけません。もしディスクが OS を 「欺かなければ」、ディスクの回転速度は一般的に最大167 回転/秒で、コミット数も1秒につき167th に制限されます。

http://dev.mysql.com/doc/refman/5.1/ja/innodb-tuning.html

ふと目にした記事。10000rpm の HDD だと、167回、7200rpm だと 120回ってことなんだろうと思うけど、あんまりそういう発想で考えたことは無かったので、なるほどなと思った。


まあもちろんグループコミットを実装しているDBMSであればこの限りではないし、主流のDBMSはグループコミットを実装していることでしょう。たぶん。

■ 参考URL
Kazuho@Cybozu Labs: ディスクが1回転する間に複数回 fdatasync する方法について