ホームページ >データベース >mysql チュートリアル >Raw SQL はどのようにして遅い Rails クエリを最適化できるのでしょうか?
Rails のパフォーマンスの向上: クエリの最適化に生の SQL を活用する
クエリが遅いと、Rails アプリケーションのパフォーマンスに大きな影響を与える可能性があります。 これを解決する 1 つのアプローチは、生の SQL を利用してデータベースの対話を最適化することです。
ActiveRecord から Raw SQL への移行
サンプル コードでは、ActiveRecord を使用して 2 つのテーブルのデータを結合し、順序付けします。 ActiveRecord::Base.connection.execute
経由で生の SQL を直接採用することで、これを強化できます。 最適化された SQL は次のとおりです:
<code class="language-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 payment_details.created_at DESC, payment_errors.created_at DESC;" records_array = ActiveRecord::Base.connection.execute(sql)</code>
クエリ結果は records_array
に保存されるため、簡単に反復して個々のレコードにアクセスできます。
特に Heroku でのパフォーマンスの強化
生の SQL を使用すると、特にリクエストのタイムアウトが一般的な懸念事項となる Heroku のようなプラットフォームで大幅なパフォーマンスの向上が得られることがよくあります。 これは、生の SQL が ActiveRecord ORM レイヤーをバイパスし、処理のオーバーヘッドを削減するためです。
生の SQL の使用に関するベスト プラクティス
以上がRaw SQL はどのようにして遅い Rails クエリを最適化できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。