In productie zal elk Rails-proces die query eenmaal uitvoeren voor elke tafel/model die het tegenkomt. Dat is één keer per rails s
, niet op verzoek:als je het herhaaldelijk ziet, zou ik onderzoeken of je processen om de een of andere reden vaak opnieuw worden opgestart.
Om deze runtime-query's volledig te elimineren, kunt u een schema-cachebestand genereren op uw server:
RAILS_ENV=production rails db:schema:cache:dump
(Rails 4:RAILS_ENV=production bin/rake db:schema:cache:dump
)
Dat commando voert de query's onmiddellijk uit en schrijft vervolgens hun resultaten naar een cachebestand, dat toekomstige Rails-processen direct zullen laden in plaats van de database te inspecteren. Uiteraard moet u de cache dan opnieuw genereren na eventuele toekomstige wijzigingen in het databaseschema.