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>
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>
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!