0
このクエリはサブクエリでゆっくりと実行されています。私はまだテンポラリテーブルを作るためのアクセス権を持っていませんが、このクエリをさらに最適化するためにとにかく存在しますか、どこかで壊れたロジックを使用していますか?クエリがサブクエリでゆっくり実行されています
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
SELECT
CONCAT(u.firstname , ' ' , u.lastname) as Student_name,
u.id as Student_ID,
FROM_UNIXTIME(u.firstaccess) as first_moodle_access,
FROM_UNIXTIME(u.lastaccess) as last_moodle_access,
FROM_UNIXTIME(last.timeaccess) as last_course_access,
grp.name as Cohorts,
cour.fullname as course
FROM
mdl_user as u
Inner Join mdl_user_lastaccess as last on u.id = last.userid
Inner Join mdl_course as cour on last.courseid = cour.id
Inner Join mdl_groups as grp on cour.id = grp.courseid
WHERE u.lastlogin = (
Select Max(u2.lastlogin)
From mdl_user as u2
where u2.lastlogin = u.lastlogin
)
AND cour.id = '10189' AND
u.firstaccess > '0' AND
u.lastaccess > '0';
whereで使用しているすべてのフィールドにインデックスを作成してみてください。 'lastlogin'、' id'、 'firstaccess'、' lastaccess' – jaym
サブクエリに 'AND u2.id = u.id'を追加してください。それは巨大なスピードブーストではないかもしれませんが、結果はより正確になります。 – CptMisery