MySQLのトランザクション

Menu Menu

MySQL は順序付きのテーブルロックである。LOCK TABLES を使って、これを実際に確認してみよ。

mysql> lock tables counter write, books write;Query OK, 0 rows affected (1 min 0.25 sec)

mysql> update counter set count = count+1 where author = 'taro';Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0

mysql> commit;mysql> unlock tables;

これを複数のターミナルで行って、待ち状態に入るのを観察する。


整列可能性

今までの作成したネットワークゲーム用の SQL が整列可能でない場合が存在するか?

存在する場合には、それによる異常な実行例を示せ。

存在しない場合には、整列可能であることを証明せよ。


トランザクション

今までの作成したネットワークゲーム用の SQL に正しく TRANSACTION を設定せよ。

これが正しく動作しているかどうかを調べよ。


オプション

デッドロックしないと言われている mysql でデッドロックさせるには、複数のserverにアクセスすれば良い。

複数のserverにアクセスする perl script を書き、デッドロックを実現してみよ。


Shinji KONO / Mon Dec 12 16:41:34 2011