このSQLクエリを高速化する方法を教えてください。
SELECT pa.*
FROM ParametrickeVyhladavanie pa,
(SELECT p.*
FROM produkty p
WHERE p.KATEGORIA IN ('$categoryArray')) produkt
WHERE produkt.ATTRIBUTE_CODE LIKE CONCAT('%', pa.code, '%')
AND produkt.ATTRIBUTE_VALUE LIKE CONCAT('%', pa.ValueCode, '%')
GROUP BY pa.code
インデックス: pa.code、pa.ValueCode、p.ATTRIBUTE_CODE、p.ATTRIBUTE_VALUE
行 0 ~ 25 を表示しています (合計 26 行、クエリに20.4995 秒かかりました)
編集 実際のコード:
SELECT pa.*
FROM ParametrickeVyhladavanie pa
WHERE EXISTS
(
SELECT 1 FROM produkty p
JOIN
PRODUCT_INFO AS pi
ON p.ProId = pi.ProduktID
AND p.KATEGORIA IN ('Mobily'))
AND pi.ATTRIBUTE_CODE = pa.AttributeCode
AND pi.ATTRIBUTE_VALUE = pa.ValueCode
GROUP BY pa.code
このコードはエラー#1054 - Unknown column 'pi.ATTRIBUTE_CODE' in 'where clause'
The pi.
table working only between(
と を示しています)
編集 - これが答えです
MySQL 5.1 を MariaDB 5.5 に変更し、高速化しました!!!