1以上のintegerですね。RT @hiroohi: あれ?RDS(mysql)のParameterGroupって、long_query_timeは1秒以上しか設定できない? #jawsug
— ARAKI Yasuhiroさん (@ar1) 6月 13, 2012
いろんな人に言われることではあるが、RDSは1秒未満のスロークエリを記録できない。
そこで使えるひとつの方法は、 minexaminedrow_limitを使うこと。折角なので超プロのblogから引用。
漢(オトコ)のコンピュータ道: MySQL 5.1のスロークエリログ
min_examined_row_limitという変数が追加されたのも見逃せない。この変数を指定すると、「○○○行以上の行をテーブルから読み込んだクエリをスロークエリログに記録する」という指定ができるようになる。多くの行を読み込むクエリは、潜在的にサーバ全体の性能を劣化させる危険性があるので、long_query_timeを少し大きめにしておいて、このオプションを併用しておくといいだろう。例えばmin_examined_row_limit=10000など。いずれの変数もアプリケーションの特性に合わせて調節して欲しい。
これをRDSで一発でやるなら
$ rds-modify-db-parameter-group sweet-parameter-group --parameters "name=slow_query_log, value=ON, method=immediate" --parameters "name=long_query_time, value=1, method=immediate" --parameters "name=min_examined_row_limit, value=10000, method=immediate"
といった具合になる。
0 件のコメント:
コメントを投稿