mysql:6683
From: SUGAWARA Hajime <SUGAWARA Hajime <sugawara@xxxxxxxxxx>>
Date: Tue, 10 Dec 2002 13:15:58 +0900
Subject: [mysql 06683] Re: 排他処理
菅原です。 "E-Mail" <tyunn@xxxxxxxxxx>さんは書きました: > > 件数が少ないならREADロックすればいいだけでは? > > #場合によってはロックする必要すらないと思いますが :) > これらはどういったケースですか?アクセス数やデータ件数が少なくても > SELECT、INSERT、UPDATEが同時に起こるケースはまったくないという > ことは誰にも言えないと思いますが?(誰にも公開せず一人で試験的に > など利用することが確実なら別でしょうが) うーん。E-mailさんがどういうケースでの利用を想定しているのか分からない ので(書かれてないので)なんとも言えないですけど。 例えば、INSERTやUPDATEがcronでのみ実行される場合、同時に起こることはな いでしょう。 あるいは、INSERTが同時に行なわれても「先のINSERTが常に優先する」仕様な ら、特に問題はありませんし。 #どういうふうに設計するか、運用するかの問題ですけどね > > (5.3.1に書かれている例は、多くのINSERTと多くのSELECTが発生したとき > > に待ち時間を小さくするためのものですし) > 待ち時間のことより、どのように処理が行われるかという説明と解釈しました。 > 5.3.1はそういった説明がある部分と思い読んでいます。 いいえ、違います。 別に別テーブルを用意しなくてもLOCK TABLESは使えますから。 例えば更新が頻繁ではなく、1件程度なら mysql> LOCK TABLES real_table WRITE; mysql> insert into real_table VALUES ( foo, var, ...); mysql> UNLOCK TABLES; で問題ないでしょう。 5.3.1の文章に > 同じテーブルで多くの INSERT と多くの SELECT を行う場合、これを解決する > には、他のテーブルに行を挿入して、たまに、その一時テーブルから全てのレ > コードをもう一方のテーブルに update します。 とありますが、「これを解決する」の「これ」は > これは、同じテーブルで多くの更新をする場合、SELECT 構文は update がな > くなるまで待たされることを意味します。 に(さらに言えば「updateがなくなるまで待たされる」に)かかっていますから。 ------ 菅原はじめ@ホビー・データ sugawara@xxxxxxxxxx
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: : 排他処理