最近管理しているDBサーバで継続的にスロークエリが出るようになったので、チューニングしてみたら気持ちの良い結果が出た。 結論から言うとカラム数が多いテーブルに対しては:selectで取得するカラムを絞るのがかなり有効かと思う。 現状把握 今回スロークエリの発生していたテーブルの状況を整理したのが以下。 レコード件数は110万件くらい カラム数は30程度 インデックスは効いている(explainで確認済み) 処理の性質的にキャッシュは使えない スロークエリになっているのはもっぱら以下のクエリ。 select * from pages order by updated_at limit 100; Railsのコードで見るとこんなかんじ。 Page.all(:order => 'updated_at', :limit => 100) こんな単純なクエリが実行に2秒から10秒程度もかかってスローク