ざ・わーるど@はてな

気が向いた時に更新する雑記です

MySQLで確定?

重い原因をいろいろ調べている。
mysql-slow.logをみていたら頻繁に登場するクエリーで遅延が出ていた。
3つくらいあったので修正。


さらに、クソ重いのでプロセスをみてみたら以下のようなカンジ。
そのままコピペするとアレなのでテーブルとかデータベース名は変更して掲載。

 mysql> show processlist;
 +-------+----------+-----------+----------+---------+------+--
 | Id    | User     | Host      | db       | Command | Time | State  | Info 
 +-------+----------+-----------+----------+---------+------+--
 | 15597 | negi | localhost | negi | Sleep   | 30   |        | NULL                                                                  |
 | 15718 | negi | localhost | negi | Query   | 33   | Locked | LOCK TABLES counter_news write                                     |
 | 15727 | negi | localhost | negi | Query   | 31   | Locked | LOCK TABLES counter_news write                                     |
 | 15799 | negi | localhost | negi | Query   | 31   | Locked | SELECT hit,news_id FROM counter_news WHERE news_id = 6163 |
 | 15801 | negi | localhost | negi | Query   | 29   | Locked | SHOW TABLE STATUS FROM `negi`                                     |
 | 15802 | negi | localhost | negi | Query   | 29   | Locked | SELECT hit,news_id FROM counter_news WHERE news_id = 6163 |
 | 15808 | negi | localhost | negi | Query   | 26   | Locked | SELECT hit,news_id FROM counter_news WHERE news_id = 6160 |
 | 15809 | negi | localhost | negi | Query   | 26   | Locked | SELECT hit,news_id FROM counter_news WHERE news_id = 6164 |
 | 15810 | negi | localhost | negi | Query   | 26   | Locked | SELECT hit,news_id FROM counter_news WHERE news_id = 6160 |
 | 15813 | negi | localhost | negi | Query   | 26   | Locked | SELECT hit,news_id FROM counter_news WHERE news_id = 3582 |
 | 15815 | negi | localhost | negi | Query   | 26   | Locked | SELECT hit,news_id FROM counter_news WHERE news_id = 6164 |
 | 15827 | negi | localhost | negi | Query   | 15   | Locked | SELECT hit,news_id FROM counter_news WHERE news_id = 6160 |
 | 15830 | negi | localhost | negi | Query   | 9    | Locked | LOCK TABLES counter_news write                                     |
 | 15831 | negi | localhost | negi | Query   | 0    | NULL   | show processlist                                                      |
 | 15837 | negi | localhost | negi | Query   | 4    | Locked | SELECT hit,news_id FROM counter_news WHERE news_id = 6162 |
 +-------+----------+-----------+----------+---------+------+--------+----------

個別記事へのアクセスが多いんだけど、そこでまわしているカウンタの処理が詰まっていてパフォーマンスが低下しているっぽい。
ファイルでカウントするかなあ。
でもそうするといろいろ不便なんだよなあ。