tag:blogger.com,1999:blog-2360036927927948032.post1996641646270148495..comments2023-01-05T10:03:17.302+09:00Comments on 日々の覚書: InnoDBのロックは行ロックじゃなくてインデックス行ロックだからね、という例yoku0825http://www.blogger.com/profile/10753953001349145687noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-2360036927927948032.post-13677150222734935572013-04-25T12:29:03.674+09:002013-04-25T12:29:03.674+09:00おお、本当ですね。ちょっと調べてみます。
とりあえず
【READ-COMMITTED】
3 lo...おお、本当ですね。ちょっと調べてみます。<br /><br />とりあえず<br /><br />【READ-COMMITTED】<br />3 lock struct(s), heap size 376, 2 row lock(s)<br />MySQL thread id 28, OS thread handle 0x7f9b0c2ed700, query id 491 localhost root cleaning up<br />TABLE LOCK table `d1`.`t1` trx id 18044 lock mode IX<br />RECORD LOCKS space id 315 page no 4 n bits 72 index `val` of table `d1`.`t1` trx id 18044 lock_mode X locks rec but not gap<br />Record lock, heap no 3 PHYSICAL RECORD: n_fields 2; compact format; info bits 0<br /> 0: len 1; hex 74; asc t;;<br /> 1: len 8; hex 0000000000000002; asc ;;<br /><br />RECORD LOCKS space id 315 page no 3 n bits 72 index `num` of table `d1`.`t1` trx id 18044 lock_mode X locks rec but not gap<br />Record lock, heap no 3 PHYSICAL RECORD: n_fields 4; compact format; info bits 0<br /> 0: len 8; hex 0000000000000002; asc ;;<br /> 1: len 6; hex 000000004662; asc Fb;;<br /> 2: len 7; hex 83000001360121; asc 6 !;;<br /> 3: len 3; hex 74776f; asc two;;<br /><br /><br />【REPEATABLE-READ】<br />3 lock struct(s), heap size 376, 5 row lock(s)<br />MySQL thread id 28, OS thread handle 0x7f9b0c2ed700, query id 501 localhost root cleaning up<br />TABLE LOCK table `d1`.`t1` trx id 18062 lock mode IX<br />RECORD LOCKS space id 315 page no 4 n bits 72 index `val` of table `d1`.`t1` trx id 18062 lock_mode X<br />Record lock, heap no 1 PHYSICAL RECORD: n_fields 1; compact format; info bits 0<br /> 0: len 8; hex 73757072656d756d; asc supremum;;<br /><br />Record lock, heap no 3 PHYSICAL RECORD: n_fields 2; compact format; info bits 0<br /> 0: len 1; hex 74; asc t;;<br /> 1: len 8; hex 0000000000000002; asc ;;<br /><br />Record lock, heap no 4 PHYSICAL RECORD: n_fields 2; compact format; info bits 0<br /> 0: len 1; hex 74; asc t;;<br /> 1: len 8; hex 0000000000000003; asc ;;<br /><br />RECORD LOCKS space id 315 page no 3 n bits 72 index `num` of table `d1`.`t1` trx id 18062 lock_mode X locks rec but not gap<br />Record lock, heap no 3 PHYSICAL RECORD: n_fields 4; compact format; info bits 0<br /> 0: len 8; hex 0000000000000002; asc ;;<br /> 1: len 6; hex 000000004662; asc Fb;;<br /> 2: len 7; hex 83000001360121; asc 6 !;;<br /> 3: len 3; hex 74776f; asc two;;<br /><br />Record lock, heap no 4 PHYSICAL RECORD: n_fields 4; compact format; info bits 0<br /> 0: len 8; hex 0000000000000003; asc ;;<br /> 1: len 6; hex 000000004662; asc Fb;;<br /> 2: len 7; hex 83000001360132; asc 6 2;;<br /> 3: len 5; hex 7468726565; asc three;;<br /><br />というところまで見ました。yoku0825https://www.blogger.com/profile/10753953001349145687noreply@blogger.comtag:blogger.com,1999:blog-2360036927927948032.post-87118616255097855212013-04-24T19:28:39.348+09:002013-04-24T19:28:39.348+09:00READ COMMITTED だと後続の接続が num = 3 の行をロック出来るみたいです。
が、...READ COMMITTED だと後続の接続が num = 3 の行をロック出来るみたいです。<br />が、val = 'three' だとやっぱり競合するようです。<br />どういう原理なんでしょう??ngyukihttps://twitter.com/ngyukinoreply@blogger.com