집 >데이터 베이스 >MySQL 튜토리얼 >기본 테이블에서 동일한 쿼리를 실행하는 것보다 뷰가 훨씬 더 많은 비용을 표시하는 이유는 무엇입니까?
MySQL 보기 성능 문제
문제:
사용자가 테이블에 대한 쿼리를 가지고 있습니다. 100,000개 행으로 특정 상태를 기준으로 필터링할 때 높은 비용(5200)을 나타냅니다. 동일한 집계 쿼리로 뷰를 생성하고 해당 뷰를 필터링하면 비용이 상당히 높아집니다(100,000).
설명:
비용 불일치의 원인은 다음과 같습니다. 사용된 뷰 알고리즘. 뷰의 기본 알고리즘은 temptable으로, 기본 테이블에서 모든 행을 검색한 다음 필터를 적용합니다. 필터링이 적은 비율의 행을 기반으로 하는 경우 성능이 저하될 수 있습니다.
해결 방법:
이 문제를 해결하려면 다음을 사용하여 뷰를 정의해야 합니다. 병합 알고리즘은 기본 테이블의 인덱스를 사용할 수 있도록 하고 필터링 효율성을 향상시킵니다. 다음 구문을 사용하여 이 작업을 수행할 수 있습니다.
병합 알고리즘을 사용하면 뷰의 쿼리가 이제 상태 열의 인덱스를 활용하여 비용을 줄이고 성능을 향상시킬 수 있습니다.
위 내용은 기본 테이블에서 동일한 쿼리를 실행하는 것보다 뷰가 훨씬 더 많은 비용을 표시하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!