本番環境では、各Railsプロセスがそのクエリを1回実行します。 遭遇するテーブル/モデルごとに。これはrails s
ごとに1回です 、リクエストごとではありません。繰り返し表示される場合は、何らかの理由でプロセスが頻繁に再起動されているかどうかを調査します。
これらのランタイムクエリを完全に排除するために、スキーマキャッシュファイル を生成できます。 サーバー上:
RAILS_ENV=production rails db:schema:cache:dump
(Rails 4:RAILS_ENV=production bin/rake db:schema:cache:dump
)
このコマンドはクエリをすぐに実行し、その結果をキャッシュファイルに書き込みます。キャッシュファイルは、データベースを検査する代わりに、将来のRailsプロセスが直接ロードします。当然、将来のデータベーススキーマの変更後に、キャッシュを再生成する必要があります。