0

뷰에있는 테이블에 인덱스를 추가하면 성능이 향상됩니다. 이제 우리는 다음과 같은 테이블이 있다고 가정 해 봅시다 :뷰의 인덱싱 필드는 MySQL에서 성능 향상을 제공합니까?

CAR

  • ID (PK)
  • 모델
  • 소유자

타이어

  • ID (PK)
  • 카리 D
  • 크기

CAR_DETAILS (보기)

  • carID
  • 소유자
  • 모델
  • tyreSize

보기가 CAR.ID = 타이어에 합류한다. CarID. 이제 다음과 같은 쿼리가 실행되었다고 가정 해 보겠습니다. SELECT model, tyreSize FR_DELSALE where where tyreSize = 19; 인덱싱 된 필드에서 뷰를 쿼리하는 경우 TIRES의 인덱싱 크기가 도움이됩니까?

답변

1

예, 구성 테이블의 색인을보기 조회에 사용할 수 있습니다. 뷰는 일반적으로 뷰의 쿼리를 뷰를 정의하는 쿼리와 병합하는 알고리즘 MERGE을 사용합니다. 당신은 다음과 같이 생각할 수 있습니다 :

뷰 쿼리보기에

SELECT * FROM CAR JOIN TYRES ON (CAR.ID=TYRES.CarID) 

쿼리 :

SELECT model, tyreSize FROM CAR_DETAILS WHERE tyreSize=19 

병합 쿼리 :

SELECT model, tyreSize FROM CAR JOIN TYRES ON (CAR.ID=TYRES.CarID) WHERE tyreSize=19 

쿼리는 정말 아니다 그런 식으로 실행하지만 어떻게 실행되는지에 대한 아이디어를 제공합니다. 귀하의 경우에는 tyreSize에 대한 색인이있는 경우 해당 색인이 사용됩니다. 다른 쿼리에 따라 TYRES.CarID에 대한 인덱스도 도움이 될 것입니다.

관련 문제