私はinnoDBテーブルでトランザクションサポートをテストしていましたが、ちょっとしたことでMyIsamテーブルで同じトランザクションを実行しようとしましたが、驚いたことにそれが機能しました。私は、myIsamテーブルのクエリが1つのアトミック操作ではなく次々に実行され、START TRANSACTIONおよびCOMMITおよびROLLBACK操作からエラーが発生しないと仮定しています。私はMyIsamエンジンがこの操作を無視しているのか、何らかのアクションを実行しているのか、興味がありますか?MyIsamエンジントランザクションサポート
20
A
答えて
26
MyISAMは(トランザクションエンジンではないため)効果的に自動コミットモードで動作し、コミット/ロールバックを無視します。
実際にストレージエンジンは、SQLパーサーから分離されたMySQLアーキテクチャーの別のレイヤーであり、SQLレイヤーは低レベルのAPIを使用してストレージエンジンと通信するため、一般的なSQLとエンジンがあり、特集のサブセットアーキテクチャの非常に高いレベルの概要を見ることができますhere
2
MyIsamのタブはこのために構築されていません。 5+バージョンでさえも。それはデータを格納することだけを意味していました。これにより、トランザクションやデータの復旧が保証されません。これにはInnoDBを使用し、必要に応じてレプリケーションの目的でMyIsamを使用する必要があります(クロステーブルチェックがないため、MyIsamテーブルでデータを取得する方が速い)。
あなたはMySQLの http://forums.mysql.com/read.php?21,68686,69229#msg-69229
関連する問題
- 1. MyISAMのパフォーマンス
- 2. InnoDBとMyISAM
- 3. メモリVS MyIsam tmpfs?
- 4. ストレージエンジン 'myisam'とデータディレクトリ
- 5. 挿入のMyISAMキー
- 6. バックアップmyIsam .MYDのみ
- 7. MySQL MyISAMテーブルインデックスカーディナリティーはゼロです
- 8. MySQL MyISAMの関係図
- 9. のYii Frameworkは - MyISAMの
- 10. LONG Blob innodbまたはMyISAM
- 11. mysql innodbとmyisamの挿入
- 12. トランザクションのない生涯(MyISAM)
- 13. 選択(InnoDBは対MyISAMテーブル)
- 14. のrsyncとのMyISAMテーブル
- 15. のMySQL - InnoDBはMyISAMの
- 16. mysql 5.7.11 myisamに復帰
- 17. JPA eclipselink、mysql/myisam bulik insert
- 18. InnoDBとMyISAMのMySQLのアトミック更新
- 19. MySQLのMyISAMの競合状態
- 20. MYISAMテーブルにauto_incrementを付けて変更
- 21. MysqlのInnodbとMyisamのパフォーマンスの差
- 22. Openfire - MySQLストレージエンジン:InnoDBまたはMyISAM?
- 23. Phpbb3.1 MyIsamデータベースが壊れました
- 24. MySQLのパフォーマンス:多くの行と列(MyISAM)
- 25. myISAMテーブルとInnoDBテーブルの外部キー
- 26. MyISAMまたはInnoDB for Social Networkingアプリケーション
- 27. myisamテーブルの外部キーの代わりに?
- 28. テーブルタイプをMyISAMからInnoDBに変更する
- 29. MySQLはInnoDbテーブルとMyiSAMテーブルをマージする
- 30. MyISAMダイアレクトが間違ったDDLを生成する
からこの記事を読むことは、あなたがDMLステートメントをロールバックすることができましたことを意味したり、構文エラーを取得していないことを「働きましたか」? –
私は単純なselect文とinsert文を実行したが、エラーは発生しなかった。 – Headshota
さて、@ Darhazerの答えを見てください。エラーは発生しませんが、実際にトランザクションは発生しません。 'INSERT'は' ROLLBACK'を発行したときに元に戻されません。 –