ホームページ >データベース >mysql チュートリアル >生の SQL クエリを実行して Rails のパフォーマンスを最適化するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。