약 10 만 명의 사용자를위한 표가 있습니다.MySQL보기 성능
첫 번째 케이스 :
Create or replace view vw_users as select state, count(*) as cnt from users
Explain select cnt from vw_users where state = 'ca'
것은 내가 계획을 설명 할 :
explain select state, count(*) as cnt from users where state = 'ca'
나는 내가 5200
두 번째 경우로 비용을 얻을 수 위의 쿼리에 대한 계획을 설명 할 때 두 번째 쿼리에서 나는 비용을 100,000으로 얻는다.
뷰의 where 절은 어떻게 작동합니까? 뷰가 모든 행을 검색 한 후에 where 절이 적용됩니까? 이 문제를 어떻게 해결합니까?
로보기 정의가 누락은 group by 절. –
병합 알고리즘을 사용할 수없는 경우 도움이 되셨습니다. [유인보기의 성능 문제에 대한 해결 방법] (http://www.mysqlperformanceblog.com/2010/05/19/a-around- 성능에 대한 문제 - 유혹적인 전망 /) – landoncz