Maison >base de données >tutoriel mysql >Comment puis-je optimiser les performances de Rails en exécutant des requêtes SQL brutes ?
Exécuter des requêtes SQL brutes dans Rails
Pour améliorer les performances d'une application Rails, vous pouvez envisager d'utiliser des requêtes SQL brutes, en particulier sur Heroku où les demandes sont sujettes à des erreurs de délai d'attente. Voyons comment convertir un extrait de code spécifique en SQL brut :
@payments = PaymentDetail.joins(:project).order('payment_details.created_at desc') @payment_errors = PaymentError.joins(:project).order('payment_errors.created_at desc') @all_payments = (@payments + @payment_errors)
Ce code combine deux associations, @payments et @payment_errors, dans @all_payments. Pour exécuter cette requête en tant que SQL brut, vous pouvez utiliser les étapes suivantes :
sql = "SELECT * FROM payment_details JOIN projects ON payment_details.project_id = projects.id ORDER BY payment_details.created_at DESC UNION SELECT * FROM payment_errors JOIN projects ON payment_errors.project_id = projects.id ORDER BY payment_errors.created_at DESC;" records_array = ActiveRecord::Base.connection.execute(sql)
Le records_array résultant contiendra un tableau d'enregistrements obtenus à partir de votre requête SQL, vous permettant de les parcourir selon vos besoins. Cette approche est plus rapide que le code Ruby original car elle contourne la couche ORM de Rails et accède directement à la base de données.
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!