Подскажите какие индексы надо добавить чтобы избавится от
Using filesort
Сам запрос
EXPLAIN EXTENDED
SELECT
SQL_NO_CACHE DISTINCT BE.ID as ID
FROM
b_iblock B
INNER JOIN b_lang L ON B.LID = L.LID
INNER JOIN b_iblock_element BE ON BE.IBLOCK_ID = B.ID
INNER JOIN b_iblock_7_index FC ON FC.ELEMENT_ID = BE.ID
LEFT JOIN b_catalog_product as PRD ON (PRD.ID = BE.ID)
WHERE
1 = 1
AND (
(
FC.SECTION_ID = 2
AND FC.FACET_ID = 1
AND FC.VALUE_NUM = 0
AND FC.VALUE IN (0)
)
AND (BE.PREVIEW_PICTURE IS NOT NULL)
AND (
EXISTS (
SELECT
IBLOCK_ID
FROM
b_iblock_site
WHERE
IBLOCK_ID = B.ID
AND (SITE_ID = 's1')
)
)
AND (
(
BE.ACTIVE_TO >= now()
OR BE.ACTIVE_TO IS NULL
)
AND (
BE.ACTIVE_FROM <= now()
OR BE.ACTIVE_FROM IS NULL
)
)
AND (BE.ACTIVE = 'Y')
AND (BE.IBLOCK_ID = '7')
)
AND (
BE.WF_STATUS_ID = 1
AND BE.WF_PARENT_ELEMENT_ID IS NULL
)
AND (
B.ID IN (
SELECT
IBLOCK_ID
FROM
b_iblock_group IBG
WHERE
IBG.GROUP_ID IN (2)
AND IBG.PERMISSION >= 'R'
AND (
IBG.PERMISSION = 'X'
OR B.ACTIVE = 'Y'
)
)
OR (
B.RIGHTS_MODE = 'E'
AND EXISTS (
SELECT
ER.ELEMENT_ID
FROM
b_iblock_element_right ER
INNER JOIN b_iblock_right IBR ON IBR.ID = ER.RIGHT_ID
INNER JOIN b_user_access UA ON UA.ACCESS_CODE = IBR.GROUP_CODE
AND UA.USER_ID = 0
WHERE
ER.ELEMENT_ID = BE.ID
AND IBR.OP_EREAD = 'Y'
)
)
)
ORDER BY
BE.ID DESC
LIMIT
3
EXPLAIN
Extra таблицы BE