MySQLでのロールバック + 「MyISAM」と「InnoDB」の違いなど

MySQLロールバック処理を行いたい場合、テーブル形式は「InnoDB」である必要があります。デフォルトである「MyISAM」ではダメです。

ただし、以下のようにして「MyISAM」→「InnoDB」への変換が可能です。

ALTER TABLE tableName TYPE=InnoDB;


ちなみに「MyISAM」と「InnoDB」の違いは下記の通りです。、

MySQLではトランザクションセーフなテーブル(InnoDBなど)と非トランザクションセーフなテーブル(MyISAMなど)を
作る事ができます。手動トランザクションが使えるのはトランザクションセーフなテーブルだけです。 
MyISAMなどの非トランザクションセーフなテーブルの場合は、データベースの変更は直ちにコミットされます。
http://www.y2sunlight.com/ground/?MySQL4.1%2F9.MySQL%A4%CE%BC%C2%B8%B3%2F4.%A5%C8%A5%E9%A5%F3%A5%B6%A5%AF%A5%B7%A5%E7%A5%F3


頻繁に更新が行われるようなシステムでは一般に「InnoDB」が使われ、あまり更新が行われないシステムでは「MyISAM」が使われることが多いようです。※「MyISAM」の方が早いため


また「InnoDB」では更新時のロックが行単位なのに対し、「MyISAM」ではテーブル単位でロックされるという違いがあります。

にほんブログ村 IT技術ブログへ
1票ポチッと押して下さい♪このブログのランキングが少し上がります。