読者です 読者をやめる 読者になる 読者になる

きたるISUCON6向け武者修行その2 -MySQLのチューニングをしてみよう-

ISUCON MySQL

kitakitabauer.hatenablog.com
前回プロビジョニングしたリポジトリにインストールされたMySQLの設定を確認していじっていきます。

MySQLのバージョンを確認
$ mysql --version
mysql  Ver 14.14 Distrib 5.6.31, for Linux (x86_64) using  EditLine wrapper

執筆時点で5.6系の最新なので問題はなさそう

設定ファイルを読み込む優先順位も念のため確認
$ mysql --help | grep my.cnf
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

/etc/my.cnfが優先される(というかこれしかなかった)
my.cnfが複数ある場合は、後から読み込まれたファイルで値が上書きされるので注意が必要。

下記オプションで設定ファイルを直接指定して、
他のファイルを読み込まないようにするのが定石か?

$ /etc/init.d/mysql --defaults-file=/etc/my.cnf --user=mysql
my.cnfの設定確認と修正
$ sudo vi /etc/my.conf
# スロークエリログ出力ON
slow_query_log
# スロークエリログファイル
slow_query_log_file=/var/log/mysql/slow.sql
# クエリが要した時間がこのしきい値の秒数を超えたらログを出力する(ここでは3秒)
long_query_time=3
スロークエリ用のログディレクトリとログファイルを作成
$ sudo mkdir /var/log/mysql
$ sudo touch /var/log/mysql/slow.sql

# コロン以降を指定しないと、所有権を変更するユーザが所属するログイングループを指定したことになるので、
# わざわざグループを調べなくてもよいので少し便利
$ sudo chown -R mysql: /var/log/mysql
MySQL設定再読み込み
$ sudo service mysqld reload

反映完了。


次回はNginxのチューニングを行います。
次回記事はこちら