2013年1月25日金曜日

MySQLのスロークエリを追う設定


MySQLの遅いクエリ、パフォーマンスがきになって調べるための設定のまとめ








my.cnfに下記設定項目を追加

[mysqld]

# Slow Query log
slow_query_log=1
slow_query_log_file="/logs/mysql_slow.log"
log_queries_not_using_indexes
log_slow_admin_statements
long_query_time=5
min_examined_row_limit=10000
#log_output=TABLE



・long_query_time=5 とするとログが5秒位上のログを記録する。

・min_examined_row_limit=10000 とすると10000以上の行をテーブルから読み込んだクエリを記録する

・log_output=TABLEの行を追加するとDBの slow_logテーブルに保管される。コレは便利かも。


ちなみにTABLEの保存の場合指定したログファイルには書き込まれない模様。どちらかとなるよう。

2013年1月21日月曜日

Lingr bot作成メモ


Lingrに投稿 下記URLをキック
http://lingr.com/api/room/say?room={$roomID}&bot={$botName}&text={$message}&bot_verifier={$botVerifier};

$botVerifier = sha1($botName . $botSecret);

Herokuでphpを使ってLingrのbotを動かす


いまさらながらHeroku。
http://www.heroku.com/

そもそもLingrのbotを動かすのに現状どこで公開しようか?
と思い悩んでいた時になにもいいのが思い浮かばなくて、
じゃぁHerokuでと思いたち、しかしPHP動くのかなと試すだけ試してみようと。

実際アカウントも無いところからだったけど
登録したらtoolbeltをインストール。
https://toolbelt.heroku.com/

すると後はターミナルで(OSX)
ローカルののgitリポジトリにremoteをHerokuアプリのアドレスを追加して
最後にpushするだけですぐに公開される.
git remote add heroku APP_URL
git push heroku master

これは楽すぎる。

で一番やりたかったLingrへの定期Post。
これはHeroku Schedulerアドオンを使って実現できる。

ただしここでハマったのがPHPのパス。
下記コマンドを実行して解決した。

heroku config:set LD_LIBRARY_PATH=/app/php/ext:/app/apache/lib
参考:2012 coscup - Build your PHP application on Heroku

Heroku SchedulerのScheduled JobsのTASKの実行コマンドには下記のように。
$ ~/bin/php ~/www/YOURE_FILE_PATH

これで動いた。便利便利。でScheduled Jobsで時間を指定するときは
日本では9時間を足すこと。