Maison >base de données >tutoriel mysql >Comment Raw SQL peut-il optimiser les requêtes Slow Rails ?
Améliorer les performances de Rails : tirer parti du SQL brut pour l'optimisation des requêtes
Les requêtes lentes peuvent avoir un impact significatif sur les performances de votre application Rails. Une approche pour résoudre ce problème consiste à utiliser du SQL brut pour optimiser les interactions de votre base de données.
Migration d'ActiveRecord vers Raw SQL
L'exemple de code utilise ActiveRecord pour joindre et trier les données de deux tables. Nous pouvons améliorer cela en employant directement du SQL brut via ActiveRecord::Base.connection.execute
. Voici le SQL optimisé :
<code class="language-sql">sql = "SELECT * FROM payment_details JOIN projects ON payment_details.project_id = projects.id UNION SELECT * FROM payment_errors JOIN projects ON payment_errors.project_id = projects.id ORDER BY payment_details.created_at DESC, payment_errors.created_at DESC;" records_array = ActiveRecord::Base.connection.execute(sql)</code>
Les résultats de la requête sont stockés dans records_array
, ce qui permet une itération et un accès faciles aux enregistrements individuels.
Performances améliorées, en particulier sur Heroku
L'utilisation de SQL brut entraîne souvent des améliorations substantielles des performances, en particulier sur des plates-formes comme Heroku, où les délais d'attente des requêtes sont une préoccupation courante. En effet, le SQL brut contourne la couche ActiveRecord ORM, réduisant ainsi la surcharge de traitement.
Meilleures pratiques pour l'utilisation du SQL brut
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!