Так что я пытаюсь сделать мой запрос быстрее, потому что в нем много строк, чтобы извлечь около 400 тыс. Строк. Я хочу использовать индекс, если этот столбец является нулевым. Ниже приведен мой пример запроса:
SELECT
DISTINCT table_1.id,
CONCAT(table_1.firstname, ' ', table_1.lastname) AS fullname,
table_1.firstname,
table_1.lastname,
table_1.email_address,
table_1.telephone,
table_4.description AS organization,
table_5.description AS location,
table_6.description AS department,
CASE
WHEN table_3.description IS NOT NULL THEN table_3.description
ELSE 'General User'
END AS user_role,
table_3.sup_admin,
table_1.employee_id
FROM table_1
JOIN table_2 ON table_2.sd_users_id = table_1.id
JOIN table_3 ON table_2.sd_menu_user_role_id = table_3.id
LEFT JOIN table_4 ON table_4.id = table_1.sd_organization_id
LEFT JOIN table_5 ON table_5.id = table_1.sm_fusion_location_id
LEFT JOIN table_6 ON table_6.id = table_1.sd_department_id
WHERE table_1.status = 'A'
AND table_2.sd_menu_user_role_id IS NULL
GROUP BY table_1.employee_id
ORDER BY email_address ASC
AND table_2.sd_menu_user_role_id IS NULL - это фильтр, который я использую для показа только общих пользователей, как вы можете видеть из приведенного выше случая.
Требуется около 2 минут, чтобы показать результат. Кто-нибудь, помогите мне, пожалуйста.