Coldfusion8 と MySQL 5.0.88 を実行しているサイトを継承しました。
製品情報を含む記事 ( A ) と、販売者の価格表を含む価格表 ( P ) の 2 つのテーブルがあります。
製品は製品テーブルで一意ですが、価格表テーブルには複数のエントリが含まれる場合があります (価格表の数によって異なります)。
私の製品検索では、Aから製品情報を取得する必要があり、ユーザーが販売者によって価格表を割り当てられている場合は、Pのそれぞれの価格表から価格を取得する必要もあります。
実際の製品クエリを実行する前に、すべての SellerID と pricelist 名を事前にコンパイルしています。これは次のようになります。
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
...
これが機能している間...それは永遠にかかります。価格表をチェックしなくても、1 秒以内に検索を実行できます。価格表を確認する必要がある場合は、7 ~ 10 秒かかります。
質問:
異なるタイプの Syntax を使用すると、これをより高速に実行できますか?
手伝ってくれてありがとう!