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]