Maison > base de données > tutoriel mysql > Comment puis-je optimiser les performances de Rails en exécutant des requêtes SQL brutes ?

Comment puis-je optimiser les performances de Rails en exécutant des requêtes SQL brutes ?

Linda Hamilton
Libérer: 2025-01-15 07:17:44
original
997 Les gens l'ont consulté

How Can I Optimize Rails Performance by Executing Raw SQL Queries?

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)
Copier après la connexion

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal