Coldfusion8 및 MySQL 5.0.88을 실행하는 사이트를 상속 받았습니다. 판매자 가격리스트를 포함하는 제품 정보가 포함되어 제품 (), 및 가격리스트 (P) -MySQL에서 Left Join 쿼리 성능을 높이는 방법은 무엇입니까?
나는 두 개의 테이블이있다.
제품은 제품 테이블에서 고유하지만 pricelist 테이블에 여러 항목이 포함될 수 있습니다 (가격표 수에 따라 다름). 내 제품 검색에서
, 나는 에서 제품 정보를 얻을 필요가 있고, 사용자는 판매자에 의해 가격표를 할당하는 경우, 또한 P에서 각각의 가격 목록에서 가격을 잡아해야합니다. 이 작동하는 동안
SELECT count(A.id) AS total
FROM arts A
<cfif variables.use_pricelists neq "">
LEFT JOIN preislisten p ON
A.ean = P.ean
AND A.sellerID = p.sellerID
AND (
// precompiled list - hardcoded loop
(P.list_name = "-Standard-" AND P.sellerID = "2222222222222")
OR
(P.list_name = "I" AND P.sellerID = "3333333333333")
)
</cfif>
WHERE
...
는 ... 영원히 취
나는 다음과 같습니다 내 실제 제품 쿼리를 수행하기 전에 모든 sellerIDs 및 가격표 이름을 미리 컴파일입니다. pricelists를 확인하지 않고 1 초 이내에 검색을 실행할 수 있습니다. 가격표에 점검이 필요한 경우 7-10 초가 소요됩니다.
질문 :
이이 구문의 다른 유형을 빠르게 수행 할 수 있습니까?
도움 주셔서 감사합니다.
내가 MySQL을 내 첫 달에 여전히 해요입니다. 색인 생성을 시작할 때 좋은 출발점이 있습니까? – frequent
조인을 고려중인 열에 인덱스를 작성하십시오. 구문 구문 작성은 위에 나와 있습니다. –
확인. 감사. 빠른 질문 : 색인 된 필드가 고유해야합니까? ean은 A에서 고유하지만 P에 여러 항목을 가질 수 있습니다 – frequent