Maison > base de données > tutoriel mysql > Comment les requêtes SQL brutes peuvent-elles améliorer les performances des applications Rails ?

Comment les requêtes SQL brutes peuvent-elles améliorer les performances des applications Rails ?

Patricia Arquette
Libérer: 2025-01-15 08:08:44
original
471 Les gens l'ont consulté

How Can Raw SQL Queries Enhance Rails Application Performance?

Utilisez SQL natif pour optimiser l'efficacité de la récupération des données des applications Rails

Lorsque vous rencontrez des goulots d'étranglement de performances dans des environnements de déploiement tels que Heroku, envisagez d'optimiser votre application Rails à l'aide de requêtes SQL natives, ce qui peut augmenter considérablement la vitesse et réduire les délais d'attente des requêtes.

Voyons comment convertir le code Rails suivant en une requête SQL native :

<code class="language-ruby">@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)</code>
Copier après la connexion

Pour exécuter cette requête en utilisant SQL natif, veuillez suivre ces étapes :

<code class="language-ruby"># 编写原生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 created_at DESC;"

# 直接在数据库上执行SQL查询
records_array = ActiveRecord::Base.connection.execute(sql)</code>
Copier après la connexion

Results records_array sera un tableau contenant les résultats de la requête SQL. Vous pouvez parcourir ces enregistrements pour un traitement ultérieur. Cette approche contourne la couche ActiveRecord ORM, ce qui pourrait entraîner des gains de performances significatifs.

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