MySQL 5.1 リファレンスマニュアル :: 13 ストレージエンジンとテーブルタイプ :: 13.2 サポートされたストレージエンジン :: 13.2.2 トランザクションエンジンと、非トランザクションエンジンの比較
« 13.2.1 ストレージエンジンの選択

13.2.3 その他のストレージエンジン »
Section Navigation      [Toggle]
  • 13.2 サポートされたストレージエンジン
  • 13.2.1 ストレージエンジンの選択
  • 13.2.2 トランザクションエンジンと、非トランザクションエンジンの比較
  • 13.2.3 その他のストレージエンジン

13.2.2. トランザクションエンジンと、非トランザクションエンジンの比較

トランザクションセーフテーブル(TSTs)は、非トランザクションセーフテーブル(NTSTs)よりも利点がいくつかあります。

  • より安全です。もしMySQLがクラッシュしたり、ハードウェアに問題がおきても、自動修復機能かバックアップとトランザクションログでデータを取り戻す事ができます。

  • COMMIT ステートメントを利用して、いくつものステートメントを組み合わせたり、同時に受け入れたりする事ができます。 (自動コミットが無効の時)

  • 変更を無視する為に ROLLBACK を実行する事ができます。 (自動コミットが無効の時)

  • もし更新に失敗したら、全ての変更は元に戻ります。(非トランザクションセーフテーブルを利用すると、全ての変更は永久的です。)

  • トランザクションセーフストレージエンジンは、読み込みと更新の並行作業が多いテーブルに、より良い並行処理を提供する事ができます。

トランザクションセーフと、非トランザクションセーフテーブルの両方を同じステートメントの中で組み合わせて、両方の利点を利用する事ができます。しかし、MySQLがいくつかのトランザクションセーフストレージエンジンをサポートしていても、良い結果を出す為に、自動コミットが無効の時は異なるストレージエンジンを1つのトランザクションの中に混在させない方がよいです。 例えば、もしこれをしてしまうと、非トランザクションセーフテーブルへの変更が行われてしまい、ロールバックできなくなってしまいます。複数のストレージエンジンをミックスして利用する時に起こるこのような問題や、これ以外の問題に関しての情報については、項12.4.1. 「START TRANSACTION、COMMIT、そして ROLLBACK 構文」を参照してください。

非トランザクションセーフテーブルには、トランザクションオーバーヘッドが無い為に起こるいくつかの利点があります。

  • より速い

  • より少ないディスク領域

  • 更新時に必要とするメモリがより少ない

Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates