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

mysql:14173

From: 島村秀世 <島村秀世 <h.shimamura@xxxxxxxxxx>>
Date: Mon, 13 Aug 2007 09:55:06 +0900
Subject: [mysql 14173] Copying to tmp table と Lockの関係について

いつもお世話になっています。

早速ですが Copying to tmp table と Lock の関係について、教えてください。


現在私どもでは、スケジューラ、休暇/残業申請等からなるグループウェアの
DBに MySQL5.0.18 を用いています。

グループウェアであることから、9:00AMの出勤時にアクセスが重なり、DBの
負荷が上昇し、load average が100を超えてしまうような事も稀にですが発生
しています。
10分程度で、load average が 2 以下に下がることから余り気にしていなかっ
たのですが、以下のコマンドで状況を確認したところ、何れの場合も Copyi
ng to tmp table が発生した際に Lock がかかっていることがわかりました。

確認したところ、Copying to tmp table となっているSQLは、外部結合な
どを多用した比較的複雑なSQLでした。
また、State が Locked となっているSQLについては、何れも Lock を行わ
ないSQLであり、かつシンプルなSQLでした。


そこで質問なのですが、

1.MySQLでは、外部結合などを多用する複雑なSQLを発行すると、Copying 
    to tmp table が発生するつくりなのでしょうか?

2.Copying to tmp table が発生した場合、他のSQLは Lock されてしまう
    のでしょうか?
    また、これを回避する方法などはないでしょうか?


※ Copying to tmp table を発生させている一部システムの利用開始時間を9:15
  以降にずらす等の対処は行うつもりですので、それ以外の対応があればお教
  え下さい。



[確認コマンド]
mysqladmin -u root -p -i4 process status > process_status.log

[process_status.logからの抜粋]
+---------+------+----------------------+-----------------------------+
| Command | Time | State                | Info                        |
+---------+------+----------------------+-----------------------------+
| Sleep   | 816  |                      |                             |
| Query   | 23   | Copying to tmp table | select r1.deptno, p.dispname|
| Query   | 23   | Locked               | select p.deptno, p.fullname,|
| Query   | 23   | Locked               | select leave_code, sum(use_t|
| Query   | 23   | Locked               | UPDATE leaverecord SET appli|
| Query   | 22   | Locked               | update public_servant set cu|
| Query   | 22   | Locked               | select dp.depname, d.divname|
| Query   | 22   | Locked               | SELECT deptno, fullname, div|

<中略>

| Query   | 1    | Locked               | update public_servant set cu|
| Query   | 1    | Locked               | select deptno, divcode, team|
| Query   | 1    | Locked               | SELECT deptno FROM public_se|
| Query   | 1    | Locked               | SELECT deptno FROM public_se|
| Query   | 0    |                      | show processlist            |
+---------+------+----------------------+-----------------------------+
Uptime: 4108990  Threads: 55  Questions: 203816547  Slow queries: 0  
Opens: 0  Flush tables: 1  Open tables: 256  
Queries per second avg: 49.603


[OS環境など]
OS: CentOS4.3
CPU:Pen3 3.4GHz
MEM: 4GByte
MySQL: MySQL5.0.18
DB専用のサーバです。



-----
島村秀世


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

     14167 2007-08-11 20:29 [<kozu@xxxxxxxxxx>   ] レプリケーションについて                
     14168 2007-08-11 20:47 ┗["Tetsuro IKEDA" <ikd]                                       
     14169 2007-08-11 23:06  ┗[<kozu@xxxxxxxxxx>   ]                                     
     14170 2007-08-12 02:55   ┗["Katsuyuki Sakai" <s]                                   
     14171 2007-08-12 10:54    ┣[<kozu@xxxxxxxxxx>   ]                                 
     14172 2007-08-12 19:35    ┣["Katsuyuki Sakai" <s]                                 
->   14173 2007-08-13 09:55    ┗[島村秀世 <h.shimamur] Copying to tmp table と Lockの関係について