Transactions
Contents
Row Locking
MVCC and the Undo Logs
History List Length
Common Problems
Reporting
Contents -detail
Row Locking
Record and next-key locks
Gap locks
Secondary Indexes
Insert Intention Locks
MVCC and the Undo Logs
History List Length
Common Problems
Large Transactions(Transaction Size)
Long-Running Transactions
Stalled Transactions
Abandoned Transactions
Reporting
Active Transactions: Latest
Active Transactions: Summary
Active Transaction: History
Committed Transactions: Summary
Summary
record lock(single index record)
next-key lock
gap lock
insert intention lock(allows INSERT into a gap)
Consistent snapshotsはInnoDBにundo logの保存を要求する。古いバージョンの行の状態を再構築するためである。 data lockとundo logはCOMMIT/ROLLBACKによりtransactionが終了した時に解放される
ありがちなtransactionの問題:
large transactions(modify too many rows)
long-running transactions
stalled transactions
abandoned transactions
transactionのパフォーマンスはクエリのパフォーマンスと同じくらい重要だ
Intro
行ロックと分離レベルの関係
MVCCとundo logs
history list lengthと問題のあるトランザクション
よくある問題
レポート
Row Locking
特殊な場合を除きReadは行をlockしないがWriteは行をlockする
isolated とは何か
as if there were no other transactions and hence no concurrency
あるトランザクションは、あたかも他のトランザクションが存在しないかのように実行されることができるということ
transactionとは原子的に扱われるSQL文の集まりのことである
all or nothing
transactionだけで話は終わらない
もし途中でDBサーバーがクラッシュしたら?
もし他のプロセスが途中でテーブルを消したら?
コネクションが切れたら?
システムがACID特性のテストをクリアしなければtransactionは十分ではない