Ruby に mysql2 を追加して Redmine の速度を上げる

そろそろ Redmine を更新しようかと思って Requirements を調べるために RedmineInstall を読んでいたら

MySQL 5.0 or higher make sure to install the C bindings for Ruby that dramatically improve performance. You can get them by running gem install mysql2.

なる記述があった。なんぞそれみたいな気持ちで、とりあえず入っているか調べてみた。

$ gem list --local | grep mysql
mysql (2.8.1)

入ってない (´・ω・`)

ということで入れよう ( ^ω^)

まずは怖いのでとりあえずデータベースのバックアップを取ろう。

$ /usr/bin/mysqldump -u <username> -p<password> <redmine_database> | gzip > /path/to/backup/db/redmine_`date +%y_%m_%d`.gz

そして入れよう ( ^ω^)

$ sudo gem install mysql2
…
Successfully installed mysql2-0.3.16
...

入った ( ^ω^) Redmine のコンフィグファイル config/database.yml も書き換えよう。

-  adapter: mysql
+  adapter: mysql2

あとはアップデート時と同じことをやろう。

$ sudo bundle install --without development test rmagick
$ rake generate_secret_token
$ sudo rake db:migrate RAILS_ENV=production 

$ sudo rake redmine:plugins:migrate RAILS_ENV=production 

$ sudo rake tmp:cache:clear
$ sudo rake tmp:sessions:clear

早くなったかな。確認するために httpd を再起動しよう。

$ sudo service httpd restart

たしかに若干早くなった……ような気がする? まぁちゃんと時間を測ったわけじゃないのでプラセボな可能性があります (´・ω・`)

一応 Redmine の「情報」が Database adapter Mysql2 に変化しているので、正しく変更はされたみたいだ。