[前][次][番号順一覧][スレッド一覧]

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: : 排他処理