mysql:6715
From: "E-Mail" <"E-Mail" <tyunn@xxxxxxxxxx>>
Date: Sat, 14 Dec 2002 11:59:48 +0900
Subject: [mysql 06715] Re: : 排他処理
こんにちは。白石です。 > > MyISAM型のテーブルに対して、更新処理(update,delete、insert)を > > 行っている間他のユーザが同テーブルを参照のみできるようにする > > といったことを行うことはできるでしょうか? > > 単一の更新処理であれば、特にロックする必要はないでしょうから、やりたい > ことは、「複数の更新処理を行なう間、他のスレッドから更新処理をさせたく > ない」ということでしょうか。 単一の可能性は高いが、複数の更新処理要求が同時にある場合は ゼロとはいえないので、言われるような処理を想定しています。 > > WRITE LOCK は、他のスレッドからの検索処理もできなくなっちゃうから、ダ > メですよね。 > 略 > 更新処理が INSERT だけであれば、これでも良いかもしれないですね。DELETE > や UPDATE がある場合は、 > > SELECT GET_LOCK("lock", 10000); > CREATE TEMPORARY TABLE insert_table SELECT * FROM real_table; > ...更新処理... > RENAME TABLE real_table TO backup_table, insert_table TO real_table; > DROP TABLE insert_table; > SELECT_RELEASE_LOCK("lock"); > > というのはどうでしょうか。試してませんが… (^^; この処理時(GET_LOCK後更新処理時)に新しいGET_LOCK要求(GET_LOCK実行) があったときは、最初のLOCKは開放されるので、最初のこの更新処理はどのように なるのでしょうか?(ちょっと心配しすぎ?)
6678 2002-12-10 02:33 ["E-Mail" <tyunn@xxxx] 排他処理 6679 2002-12-10 03:11 ┣[Sumito_Oda <oda@xxxx] 6680 2002-12-10 10:52 ┃┗["E-Mail" <tyunn@xxxx] 6681 2002-12-10 11:35 ┃ ┗[SUGAWARA Hajime <sug] 6682 2002-12-10 12:01 ┃ ┗["E-Mail" <tyunn@xxxx] 6683 2002-12-10 13:15 ┃ ┗[SUGAWARA Hajime <sug] 6692 2002-12-11 09:06 ┃ ┗["E-Mail" <tyunn@xxxx] 6694 2002-12-11 12:03 ┃ ┗[SUGAWARA Hajime <sug] 6701 2002-12-12 07:10 ┗[とみたまさひろ <tomm] -> 6715 2002-12-14 11:59 ┗["E-Mail" <tyunn@xxxx] Re: : 排他処理