카테고리 없음
[mysql] MySQL-인덱싱 할 열을 어떻게 알 수 있습니까?
행복을전해요
2021. 1. 27. 00:29
먼저 쿼리를 다음과 같이 단순화 할 수 있습니다.
SELECT a.ORD_ID AS Manual_Added_Orders,
a.ORD_poOrdID_List AS Auto_Added_Orders,
a.ORDPOITEM_ModelNumber,
a.ORDPO_Number,
a.ORDPOITEM_ID,
SUM(ORDPOITEM_Qty) AS ORDPOITEM_Qty
a.ORDPO_TrackingNumber,
a.ORDPOITEM_Received,
a.ORDPOITEM_ReceivedQty,
a.ORDPOITEM_ReceivedBy,
b.ORDPO_ID
FROM orderpoitems a
LEFT JOIN orderpo b ON (a.ORDPO_Number = b.ORDPO_Number)
WHERE a.ORDPO_Number = 123007
GROUP BY a.ORDPOITEM_ModelNumber
ORDER BY a.ORD_poOrdID_List, a.ORD_ID
둘째로 나는에 인덱스를 생성하여 시작하는 것 orderpoitems.ORDPO_Number
및orderpo.ORDPO_number
테이블 구조 없이는 말하기 어렵습니다.
-------------------인덱스 및 커버링 인덱스 읽기
당신이 가지고있는 것에서 where 절에있는 것부터 시작하고 기준을 다른 테이블에 결합하십시오. 또한 가능하고 실용적인 경우, 질의를 마칠 때 일반적으로 질의 기준으로 그룹화 / 주문 기준으로 사용되는 열을 포함합니다.
즉, OrderPOItems 테이블에 색인이 있습니다.
(ordpo_number, orderpoitem_ModelNumber, ord_poordid_list, ord_id)
이렇게하면 FIRST 요소가 WHERE 절에 도달합니다. 다음은 데이터 그룹화 열, 마지막으로 주문 기준 열입니다. 이렇게하면 반환되는 나머지 열에 대한 원시 데이터 페이지로 이동할 필요없이 인덱스에서만 조인 및 자격을 부여하는 구성 요소를 "검증"할 수 있습니다. 시나리오에 맞는 좋은 시작이 되길 바랍니다.
출처
https://stackoverflow.com/questions/22029800