mysql のコミットとロールバックの手順をいくつかテストしたところ、MyISAM エンジンでのコミットとロールバックに関するいくつかの問題が見つかりました。MyISAM エンジンでコミットまたはロールバックが機能しないことはありますか? InnoDB と MyISAM エンジンの違いを教えてください。
4 に答える
MyIASM はロールバックとコミットをサポートしていません。そのためには InnoDB を使用する必要があります。
Innodb と MyISAM の違い:
最初の大きな違いは、MyISAM はテーブル レベルのロックしかできないのに対し、InnoDB は行レベルのロックを実装していることです。InnoDB では、より優れたクラッシュ リカバリが見つかります。ただし、MyISAM のように FULLTEXT 検索インデックスはありません。InnoDB はトランザクション、外部キー、および関係制約も実装しますが、MyISAM は実装しません。
リストはもう少し先に進むことができます。それでも、両者には、お互いに有利な点と不利な点という独自の利点があります。それらのそれぞれは、他のシナリオよりもいくつかのシナリオに適しています。
要約すると:
- InnoDB には行レベルのロックがあり、MyISAM は完全なテーブル レベルのロックしか実行できません。
- InnoDB はより優れたクラッシュ リカバリを備えています。
- MyISAM には FULLTEXT 検索インデックスがありますが、InnoDB にはありません。
- InnoDB はトランザクション、外部キー、および関係制約を実装しますが、MyISAM は実装しません。
MyISAM は実際のトランザクションをサポートしていません (すべてが自動コミットを有効にして実行されたかのように):
http://dev.mysql.com/doc/refman/5.7/en/ansi-diff-transactions.html
Google での最初の回答...「MyISAM でコミットまたはロールバックが機能しない」
http://forums.mysql.com/read.php?21,68686,68701#msg-68701
ユーザーは、書くよりも sth を検索するように努力する必要がある場合があります。