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の関係について