Answer the question
In order to leave comments, you need to log in
What indexes should be added to the query?
Tell me what indexes need to be added to get rid of
Using filesort
The query itself
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
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question