Я пытаюсь выполнить этот запрос в базе данных MYSQL.GROUP_CONCAT Ошибка производительности с отдельными и sub_query
SELECT FirstName,LastName
CONCAT(COALESCE(Address1, ''),
COALESCE(Address2, '')) AS Address2,
(SELECT GROUP_CONCAT(EmpDept ' ') FROM EMP_DEPT
USE INDEX (EMP_DEPT_IDX)
WHERE EMP_DEPT.EMP_ID = EMP.EMP_ID) AS DEPT,
COUNT(PIN) AS PIN,
MIN(SALARY) AS SALARY,
GROUP_CONCAT(DISTINCT PAY_CODE SEPARATOR ' ') AS PAYROLL_CODE
FROM EMP WHERE HOUSE='YELLOW' AND HOUSE_AREA='220'
AND (JOIN_YEAR = '2011' OR JOIN_YEAR = '2012')
AND EMP_BAND='G'
AND (FRESHER = 'N' OR FRESHER = 'FALSE')
AND PIN IS NOT NULL
AND SALARY > 0
GROUP BY FirstName,LastName Address3, Address2, DEPT
Запрос работает нормально, и я получаю нужный набор результатов.
Только проблема в том, есть огромное падение производительности на этих двух строк кода, написанного с использованием GROUP_CONCAT,
(SELECT GROUP_CONCAT(EmpDept ' ') FROM EMP_DEPT
USE INDEX (EMP_DEPT_IDX)
WHERE EMP_DEPT.EMP_ID = EMP.EMP_ID) AS DEPT
GROUP_CONCAT(DISTINCT PAY_CODE SEPARATOR ' ') AS PAYROLL_CODE
Я попытался добавления INDEX, но до сих пор не повезло. (Только эти подзапросы не принимают вокруг 30-40sec выполнить)
Я попытался реализации присоединяется, но я новичок в MySQL нет удачи ..
Может кто-нибудь помочь мне в создании мой запрос выполняется быстрее?