ホームページ >データベース >mysql チュートリアル >生の SQL クエリを実行して Rails のパフォーマンスを最適化するにはどうすればよいですか?

生の SQL クエリを実行して Rails のパフォーマンスを最適化するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-15 07:17:44992ブラウズ

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

Rails で生の SQL クエリを実行する

Rails アプリケーションのパフォーマンスを向上させるには、特に Heroku で生の SQL クエリを利用することを検討できます。リクエストがタイムアウト エラーを起こしやすい場合。特定のコード スニペットを生の SQL に変換する方法を見てみましょう:

@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)

このコードは、@payments と @payment_errors の 2 つの関連付けを @all_payments に結合します。このクエリを生の SQL として実行するには、次の手順を使用できます。

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)

結果の records_array には、SQL クエリから取得したレコードの配列が含まれるため、必要に応じてレコードを反復処理できます。このアプローチは、Rails の ORM 層をバイパスしてデータベースに直接アクセスするため、元の Ruby コードよりも高速です。

以上が生の SQL クエリを実行して Rails のパフォーマンスを最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。