복붙노트

[SQL] Laravel 웅변 대 쿼리 빌더 - 사용 설득력이 성능을 저하하는 이유 [폐쇄]

SQL

Laravel 웅변 대 쿼리 빌더 - 사용 설득력이 성능을 저하하는 이유 [폐쇄]

나는 Laravel 쿼리 빌더와 웅변 사이에 성능 테스트를했다. 쿼리 빌더는 훨씬 빠른 SQL 문 (선택 업데이트 - 삭제 - 삽입)의 다양한으로했다.

그래서 제 질문은 : 누군가가 일반 쿼리 빌더에 대해 Laravel 설득력을 사용하는 이유는 무엇입니까?

해결법

  1. ==============================

    1.웅변은 액티브 레코드 패턴의 Laravel의 구현이며 모든 장점과 단점이 함께 제공됩니다. 그것은 당신이 CRUD 방식으로 단일 엔티티 처리 할 때 사용할 수있는 좋은 솔루션입니다 -입니다, 데이터베이스에서 읽거나 새로운 엔티티를 생성하고 저장하거나 삭제할 수 있습니다. 당신은 (예 : 더러운 검사 (만 변경된 필드에 SQL UPDATE를 보내), 모델 이벤트 (예 : 관리 경고 또는 업데이트 통계 누군가가 새 계정을 만들 때 카운터 보내) 특성으로 웅변의 기능에서 많은 도움이됩니다 타임 스탬프, 부드러운 삭제, 사용자 정의 특성) 열망 / 지연로드 등

    웅변은 액티브 레코드 패턴의 Laravel의 구현이며 모든 장점과 단점이 함께 제공됩니다. 그것은 당신이 CRUD 방식으로 단일 엔티티 처리 할 때 사용할 수있는 좋은 솔루션입니다 -입니다, 데이터베이스에서 읽거나 새로운 엔티티를 생성하고 저장하거나 삭제할 수 있습니다. 당신은 (예 : 더러운 검사 (만 변경된 필드에 SQL UPDATE를 보내), 모델 이벤트 (예 : 관리 경고 또는 업데이트 통계 누군가가 새 계정을 만들 때 카운터 보내) 특성으로 웅변의 기능에서 많은 도움이됩니다 타임 스탬프, 부드러운 삭제, 사용자 정의 특성) 열망 / 지연로드 등

    당신이 이미 알고하지만, 그것은 몇 가지 성능 가격으로 제공됩니다. 단일 또는 몇 레코드를 처리 할 때 걱정할 필요가 없다. 그러나 경우에 당신이 기록을 많이 읽을 때 (예를 들어 DataGrids를 들어, 보고서, 처리 배치 등을위한) 일반 DB는 더 나은 방법입니다.

    웹 양식에 Laravel의 웅변을 사용하는 그리드, 수출 등의 데이터를 검색 (SQL 전망을) DB를 사용하여 하나의 기록 등을 처리하기 위해 - 우리의 응용 프로그램을 위해 우리는 정확하고있다

  2. ==============================

    2.예, 어떤 경우에는 당신이 옳다. 우리는 더 많은 데이터를했습니다 거의 모든 사이트에서 때, 데이터는 정말 작지 않다. 그런 다음 웅변 쿼리보다 DB 쿼리를 사용하는 것이 좋습니다.

    예, 어떤 경우에는 당신이 옳다. 우리는 더 많은 데이터를했습니다 거의 모든 사이트에서 때, 데이터는 정말 작지 않다. 그런 다음 웅변 쿼리보다 DB 쿼리를 사용하는 것이 좋습니다.

    웅변 VS DB I의 성능 문제에서, 그 들었어요

    이유는 다음 웅변 그래서? 그 어떤 것도 필요를 일 아닌가요?

    답변입니다 - 웅변도 필요하다. 원인-

    // In Eloquent
    $student = App\Student::find($id);
    
    // In DB facade
    $student = DB::table('student')->where('id', $id)->first();
    

    우리는 웅변 및 DB의 외관을 사용할 때 그래서 :

    그래서, 결국은 클리어 - 우리가 웅변 쿼리를 사용할 것이다 때 우리가 및 데이터베이스 쿼리를 사용할 것이다 때.

    편집 - 실제 생활 예

    당신은 Laravel Debugbar 사용하여 쿼리 성능을 확인할 수 있습니다 (웅변을 확인하는 인기 패키지 / 데이터베이스 쿼리 성능 / 실행 시간)

    이제 당신의 선택입니다. 당신이 만들고 싶어 무엇 ...

  3. ==============================

    3.왜 Laravel 웅변 :

    왜 Laravel 웅변 :

  4. ==============================

    4.이 성능을 제공하고 응용 프로그램이 비교를 위해, 성장하는 경우, 다음 표에서 전리품을 가지고 :

    이 성능을 제공하고 응용 프로그램이 비교를 위해, 성장하는 경우, 다음 표에서 전리품을 가지고 :

    웅변 ORM 및 원시 SQL 사이의 선택 조작 평균 응답 시간의 비교

    Joins | Average (ms) 
    ------+-------------
    1     | 162,2 
    3     | 1002,7 
    4     | 1540,0 
    
    Result of select operation average response time for Eloquent ORM 
    
    Joins | Average (ms) 
    ------+-------------
    1     | 116,4 
    3     | 130,6 
    4     | 155,2 
    
    Result of select operation average response time for Raw SQL 
    

    관련 기사

  5. ==============================

    5.그냥 내 의견이 아니라 포괄적 인 대답이다. 나는 주어진 상황에서보다 편리 무엇이든 사용할 수 있습니다.

    그냥 내 의견이 아니라 포괄적 인 대답이다. 나는 주어진 상황에서보다 편리 무엇이든 사용할 수 있습니다.

    나는 웅변이나 쿼리 빌더, 사용되는 어떤 I 사용에 쓰여 패키지 또는 코드 건너합니다.

    나는 더 자주 사용 그래서 처음부터 뭔가를 만드는 경우 쿼리 빌더가보다 직관적으로 발견했다.

    이 Laravel에 올 때, 응용 프로그램 개발의 용이성과 속도가 더 중요 다음 성능이다, 보인다. 난 정말 그렇게 그들은 심지어 PHP / MySQL은 거의 사전 지식을 가진 사람을 매우 쉽게 모든 것을합니다. 어떤 경우에는 설득력이 쿼리 빌더보다 쉽습니다. 다른 사람의 반대합니다. 뭔가 너무 쉽게하고 친절한 초보자 Laravel을 만드는 것입니다을하는 많은 방법을 가지고 생각합니다.

  6. ==============================

    6.이 사용하기 쉬운 것 때문에 데이터베이스에서 복잡한 쿼리를 만들 때 쿼리 빌더를 사용하여 같은 I. 웅변과 같은 단일 테이블, 내가 작업하십시오.

    이 사용하기 쉬운 것 때문에 데이터베이스에서 복잡한 쿼리를 만들 때 쿼리 빌더를 사용하여 같은 I. 웅변과 같은 단일 테이블, 내가 작업하십시오.

  7. ==============================

    7.웅변 ORM 특정 테이블 적은 데이터에 적합하고있다. 다른 측면에서, 쿼리 빌더 여부를 빠르게 웅변 ORM에 비해 하나 개 이상의 테이블에 많은 데이터를 처리하는 데 시간이 덜 걸립니다.

    웅변 ORM 특정 테이블 적은 데이터에 적합하고있다. 다른 측면에서, 쿼리 빌더 여부를 빠르게 웅변 ORM에 비해 하나 개 이상의 테이블에 많은 데이터를 처리하는 데 시간이 덜 걸립니다.

    내 경우, 나는 미만 17,500 항목을 개최한다 테이블 응용 프로그램에서 설득력 ORM을 사용합니다. 나는 테이블 이상 17500 개 항목을 개최 것으로 예상 할 때마다, 쿼리 빌더는 최고입니다.

    또한, 서브 쿼리와 애플리케이션에서, 나는 웅변 ORM 이상의 쿼리 빌더를 선호합니다.

  8. ==============================

    8.그들 사이에 여러 가지가있다

    그들 사이에 여러 가지가있다

  9. from https://stackoverflow.com/questions/38391710/laravel-eloquent-vs-query-builder-why-use-eloquent-to-decrease-performance by cc-by-sa and MIT license