2011-07-05 6 views
5

질문에이 모든 것이 나와 있습니다. 어느 것이 더 빠릅니까? 속도 최적화에 관해서는 언제 하위 쿼리 대신 부울과 뷰를 사용해야합니까?더 빠른보기 또는 하위 쿼리는 어느 것입니까?

저는 특정 상황이 아니지만 mysql에서보기를 사용하여 몇 가지 시도를하고 있다고 생각했습니다.

답변

5

MySQL에서 특히 효율적이지 않습니다. 어쨌든, MySQL은 뷰에 데이터 캐싱을하지 않으므로 뷰는 쿼리 실행에 또 다른 단계를 추가합니다. 이로 인해 뷰는 서브 쿼리보다 느려집니다. 이 블로그 게시물에서 몇 가지 추가 정보를 확인하십시오. http://www.mysqlperformanceblog.com/2007/08/12/mysql-view-as-performance-troublemaker/

약간 낡은 데이터를 처리 할 수있는 경우 가능한 한 가지 방법은 구체화 된보기입니다. 자세한 정보 및 구현 방법은 Flexviews을 확인하십시오.

+0

아주 좋은 기사, 특히 아래 Blakkky 주석. –

5

똑똑한 옵티 마이저는 어느 쪽이든 동일한 실행 계획을 제시합니다. 그러나 인 경우 차이가있을 수 있습니다. 왜냐하면 어떤 이유로 인해 최적화 프로그램이 뷰의 작동 방식을 올바르게 예측할 수 없기 때문일 수 있습니다. 이는 일부 상황에서 하위 쿼리가 가장자리를 가질 수 있음을 의미합니다.

하지만 그 부분이 중요합니다. 이것은 정확도입니다. 뷰와 하위 쿼리는 다른 용도로 사용됩니다. 뷰를 사용하여 코드 재사용 또는 보안을 제공합니다. 보안 및 유지 관리에 대한 의미를 이해하지 않고 뷰를 사용해야하는 경우 하위 쿼리에 도달하면 어리 석다. 정확도가 성능보다 우수합니다.

+0

본 적이 있습니다. 그래서 기본적으로 속도가 현명합니다. –

+0

@ Yasen 님이 내 답변을 업데이트했습니다. –

+0

Joel. 나는 뷰와 하위 쿼리의 목적이 서로 다르다는 것을 알고 있지만 그 중 하나를 사용하면 속도가 향상 될 것인지를 알고 싶었습니다. –

관련 문제