注目キーワード
  1. 技術
  2. 広告
  3. IDFA
  4. PHP
  5. WordPress

MySQLTunerを使って簡単にデータベースチューニングを行なうやり方

データベースのサーバスペックを変更したのですが、各種の割り当てやパラメータチューニングをやり直す必要が出てきました。こういった際に、MySQLTunerを使うと、チューニングの手助けになります。今回は、MySQLTunerを使って簡単にデータベースチューニングを行なってみましたので、そのときのメモを記載します。

MySQLTunerとは

https://github.com/major/MySQLTuner-perl
スター数は、6,000を超えているオープンソースです。パラメータチューニングについて、こういう設定にした方がいいよとアドバイスをしてくれます。MySQL5.7まではフルサポートされており、MySQL8はパスワード認証の変更が大きくかかっているため、パスワードチェックのみ動かず、それ以外はサポートされています。

スター数についてもreadmeに記載がされていますが、リリースから今に至るまで、利用者が着実に増えてきているようです。

MySQLTunerのダウンロード

$ wget http://mysqltuner.pl/ -O mysqltuner.pl
................................................................................
................................................................................
................................................................................
2021-xx-xx xx:xx:xx (17.7 MB/s) - `mysqltuner.pl' へ保存完了 [227610/227610]
$ wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/basic_passwords.txt -O basic_passwords.txt
................................................................................
................................................................................
................................................................................
2021-xx-xx xx:xx:xx (85.7 MB/s) - `basic_passwords.txt' へ保存完了 [3988/3988]
$ wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/vulnerabilities.csv -O vulnerabilities.csv
--2021-xx-xx xx:xx:xx--  https://raw.githubusercontent.com/major/MySQLTuner-perl/master/vulnerabilities.csv
................................................................................
................................................................................
................................................................................
2021-xx-xx xx:xx:xx (35.8 MB/s) - `vulnerabilities.csv' へ保存完了 [1185249/1185249]

Readmeに沿って、上記3つをインストールしたら完了です。

MySQLTunerのチューニング診断

# perl mysqltuner.pl

こちらのコマンドで実行することができます。コマンドを実行すると、スタートします。

$ perl mysqltuner.pl
 >>  MySQLTuner 1.7.21 - Major Hayden <major@mhtx.net>
 >>  Bug reports, feature requests, and downloads at http://mysqltuner.pl/
 >>  Run with '--help' for additional options and output filtering

[--] Skipped version check for MySQLTuner script
Please enter your MySQL administrative login: xxxxxxxx
Please enter your MySQL administrative password: [OK] Currently running supported MySQL version 8.0.19
[OK] Operating on 64-bit architecture

MySQLにログインするためのIDとパスワードを聞かれますので、入力をしてください。
結果は下記のように出ました。

-------- Recommendations ---------------------------------------------------------------------------
General recommendations:
    Control warning line(s) into /var/log/mysqld.log file
    Control error line(s) into /var/log/mysqld.log file
    Reduce your overall MySQL memory footprint for system stability
    Dedicate this server to your database for highest performance.
    We will suggest raising the 'join_buffer_size' until JOINs not using indexes are found.
             See https://dev.mysql.com/doc/internals/en/join-buffer-size.html
             (specially the conclusions at the bottom of the page).

Logファイルの中に、複数のwarningとerrorが出ていると指摘がありました。

    Control warning line(s) into /var/log/mysqld.log file
    Control error line(s) into /var/log/mysqld.log file

確認したところ、大きな問題になりそうな部分はなかったので、これで完了です。

MySQLTunerのメリットデメリット

MySQLTunerを使うと、MySQLサーバのチューニングの手掛かりにすることができます。また、MySQLTunerは読み取りのみ動くため、設定ファイルに勝手に書き込みが行なわれたり、更新がかかることはありません。なので、手軽に利用することができます。