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

mysql:5066

From: "f.t" <"f.t" <fujiyama@xxxxxxxxxx>>
Date: Wed, 30 Jan 2002 13:02:04 +0900
Subject: [mysql 05066] Re: 時間のかかる SELECT 文によるテーブルロック

fujiyamaです。

"Yasuhide Nomura" <mag@xxxxxxxxxx> wrote(Tue, 29 Jan 2002 20:36:35 +0900):

> MySQL3.24による400万ユーザのデータを運用していますが、
> 管理者が運用状態を見るために応答に時間がかかるSELECT
> によるクエリーを発行した場合、クエリが終了するまで応答速度を
> 要求されるアプリケーションからのテーブルロック、UPDATE、DELETE
> などの操作が待たされてしまいます。
> テーブルがロックされる状態は仕方のないことでしょうか。
> 
> MySQLのマニュアルには、
> |テーブルロッキングは以下の場合にはあまり良くありません:
> |
> |・あるクライアントが実行に長い時間のかかる SELECT を発行。
> |・その後に、他のクライアントが、使用されているテーブルに対し
> | UPDATE を発行;このクライアントは先の SELECT が完了するま
> | で待ちます
> とありますが、テーブルロックをしていないSELECT文に対しても、
> 上記のようなロック状態が発生するのはなぜなのでしょうか。

普通に操作していたら、select時にはREADロックは自動的にかかるもの(そうで
ないとデータが読めない)と考えてましたが、違いました?(求む識者の答え)

で、解決策は、マニュアルのように
・selectが早くなるようにindexなどを工夫する
・必要な読み込み用のテーブルを作る
とかしかないのではないでしょうか?

-- よろしくお願いします
f.t <fujiyama@xxxxxxxxxx>


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

      5053 2002-01-29 20:36 ["Yasuhide Nomura" <m] 時間のかかる SELECT 文によるテーブルロック
->    5066 2002-01-30 13:02 ┗["f.t" <fujiyama@xxxx]                                       
      5067 2002-01-30 14:38  ┗["Yasuhide Nomura" <m]                                     
      5068 2002-01-30 15:06   ┗[Noriyuki Sakimura <s]