집 >데이터 베이스 >MySQL 튜토리얼 >원시 SQL은 어떻게 느린 레일 쿼리를 최적화할 수 있습니까?
Rails 성능 향상: 쿼리 최적화를 위해 원시 SQL 활용
느린 쿼리는 Rails 애플리케이션 성능에 큰 영향을 미칠 수 있습니다. 이 문제를 해결하는 한 가지 접근 방식은 원시 SQL을 활용하여 데이터베이스 상호 작용을 최적화하는 것입니다.
ActiveRecord에서 원시 SQL로 마이그레이션
예제 코드에서는 ActiveRecord를 사용하여 두 테이블의 데이터를 조인하고 정렬합니다. 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 사용 모범 사례
위 내용은 원시 SQL은 어떻게 느린 레일 쿼리를 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!