SELECT
(UserCourseProgress.TimeEnded - UserCourseProgress.TimeStarted) as SecondsSpent,
UserCourseProgress.UserId
FROM
UserCourseProgress
INNER JOIN UserRoles
ON UserCourseProgress.UserId = UserRoles.UserId
AND (UserRoles.SuperId = '123' OR UserRoles.UserId = '123')
Я пытаюсь оптимизировать этот запрос, поскольку он занимает слишком много времени (главным образом, копирование данных в таблицу Tmp). Структура простая таблица, называемая UserCourseProgress
, а другая - UserRoles
, они оба имеют столбец UserId
, и я выбираю все userRoles
, принадлежащие суперпользователю. Есть идеи?MySQL оптимизировать запрос
Убедитесь, что индексы на '' UserRoles.SuperId' и UserRoles.UserId', а также как на FK 'UserCourseProgress.UserId' – StuartLC
вы можете дать структуру таблицы и немного больше объяснения, – Lijo