Это не полный ответ (по крайней мере, на данный момент), но слишком большой, чтобы быть комментарием.
Вы можете добавить индекс к таблице. Синтаксис для этого здесь: -
https://dev.mysql.com/doc/refman/8.0/en/create-index.html
Я бы предположил , что индекс столбцов assignment_id и student_id, вероятно, поможет больше всего.
ALTER TABLE `answers` ADD INDEX `assignment_id_student_id` (`assignment_id`, `student_id`);
Это может занять некоторое время (т. Ч., Вероятно, не в этой ситуации, но что-то, о чем следует знать с большими / более сложными индексами).
Обратите внимание, что MySQL в целом будет использовать один индекс для таблицы, а не объединять индексы. Следовательно, вы устанавливаете индекс, который охватывает более одного столбца.