Heraku などのデプロイメント環境でパフォーマンスのボトルネックが発生した場合は、ネイティブ SQL クエリを使用して Rails アプリケーションを最適化することを検討してください。これにより、速度が大幅に向上し、リクエストのタイムアウトが短縮されます。
次の Rails コードをネイティブ SQL クエリに変換する方法を見てみましょう:
<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>
ネイティブ SQL を使用してこのクエリを実行するには、次の手順に従ってください:
<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
は、SQL クエリの結果を含む配列になります。これらのレコードを反復処理してさらに処理することができます。このアプローチは ActiveRecord ORM レイヤーをバイパスするため、パフォーマンスが大幅に向上する可能性があります。
以上がRaw SQL クエリはどのように Rails アプリケーションのパフォーマンスを向上させることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。