In case you have your own slow SQL query, you can optimize it automatically here.
For the query above, the following recommendations will be helpful as part of the SQL tuning process.
You'll find 3 sections below:
ALTER TABLE `Forum` ADD INDEX `forum_idx_id_universe_id` (`Id_Universe`,`Id`);
ALTER TABLE `Post` ADD INDEX `post_idx_id_thread` (`Id_Thread`);
ALTER TABLE `Thread` ADD INDEX `thread_idx_id_forum` (`Id_Forum`);
ALTER TABLE `Thread_View` ADD INDEX `thread_view_idx_id_user_id_thread` (`Id_User`,`Id_Thread`);
SELECT
F.Id,
CASE
WHEN SUM(V.IsRead) = COUNT(V.IsRead) THEN 1
ELSE 0 END AS IsRead
FROM
Forum F
LEFT JOIN
Thread T
ON T.Id_Forum = F.Id
LEFT JOIN
(
SELECT
P.Id_Thread,
CASE
WHEN MAX(P.CreatedAt) < MAX(V.LastView) THEN 1
ELSE 0 END AS IsRead
FROM
Post P
INNER JOIN
Thread T
ON P.Id_Thread = T.Id
INNER JOIN
Forum F
ON T.Id_Forum = F.Id
LEFT JOIN
Thread_View V
ON P.Id_Thread = V.Id_Thread
AND V.Id_User = @Id_User
WHERE
F.Id_Universe = @Id_Universe
GROUP BY
P.Id_Thread
ORDER BY
NULL
) V
ON T.Id = V.Id_Thread
WHERE
F.Id_Universe = @Id_Universe
GROUP BY
F.Id
ORDER BY
F.Id