【RoR】Ruby on Rails Part11
■ このスレッドは過去ログ倉庫に格納されています
0241nobodyさん
2011/01/29(土) 14:10:00ID:???ttp://dev.mysql.com/doc/refman/5.1/ja/innodb-transaction-isolation.html
InnoDB使ってるだろうから、デフォルトの REPEATABLE READ だと思われる。
結論からいうと、Bookテーブルは別のプロセスから変更を受けうる。
ただし、Bookテーブル内のロックされた行は
別プロセスから変更を受けないことが保証される。
テーブルレベルのロックと行レベルのロックの違いを汁。
Aさんが行1,2を更新している間は、Bさんは行1,2のコミットが終わるまでは、
UPDATEやDELETEはもちろん、SELECT文での読み取りも不可能になる。
ただし、Aさんがそのトランザクション中に更新しないとMySQLが判断した
行3なんかがあたとしたら、Bさんは行3に関しては読み取り・更新が出来る。
書き方が変だと、トランザクションはったつもりでも
レースコンディションが起こるので注意。
ttp://d.hatena.ne.jp/LukeSilvia/20100130/p1
■ このスレッドは過去ログ倉庫に格納されています