テープルにインデックスを追加

phpMyAdminでJOIN時の警告が出ていたので(ソースも見ないでw)JOINが利用されそうなフィールドにインデックスを追加してみた

befor

 まずはDBをバックアップする

$ mysqldump -A -u root -p > db_all_backup_`date +%Y%m%d-%H%M%S`.sql
Enter password:(パスワード)
$ mysqldump freo -u root -p > db_freo_backup_`date +%Y%m%d-%H%M%S`.sql
Enter password:(パスワード)
$

全体とfreoのみのバックアップしておく

phpMyAdminでテーブルを参照しながらインデックスを追加

categories:        既id(p)
category_sets:     追category_id 追entry_id
comments:          既id(p) 追entry_id 追page_id user_id
entries:           既id(p) 既code 追user_id
filters:           既id(p)
filter_sets:       追filter_id 追entry_id 追page_id
groups:            既id(p)
group_sets:        追group_id 追user_id 追entry_id 追page_id
informations:      既id(p) 追entry_id 追page_id
logs:              既id(p) 追user_id
options:           既id(p)
option_sets:       追option_id 追entry_id 追page_id
pages:             既id(p) 追user_id
trackbacks:        既id(p) 追entry_id 追page_id
users:             既id(p) 既mail 既session 既serial

plugin_bookmarks:  既id(p)
plugin_counts:     無し
plugin_menus:      既id(p)
plugin_messages:   既id(p)
plugin_popularies: 無し

尚、マルチカラムインデックスにしても、MySQLでは1つのクエリで1つのテーブルにつき1つのインデックスしか使用できないため効果の程はMySQL任せとなる

追加でtagをインデックス化

entries:           既id(p) 既code 既user_id 追tag
pages:             既id(p) 既user_id 追tag

数日おいて見ると、とりあえずは0になった

after