Мне нужен ваш совет, чтобы наилучшим образом пройти и вернуть значения из базы данных (как показано ниже). Структура базы данных задается другим приложением.Производительность и оптимизация операторов MySQL
Как в настоящее время система возвращает значение пользователя с ID = 6 в этом случае:
Посмотрите на экземпляр элемента и модуль элемента (1 и обучение) и возвращает идентификатор строки. Используя этот идентификатор строки, искать соответствующий Itemid и идентификатор пользователя в таблице 2.
grade_grades
grade_items
Текущие SQL/функции:
функция 1 {SELECT ID FROM grade_items WHERE itemmodule = 'training' и iteminstan се = '1'} (возвращает идентификатор)
функция 2 {используя возвращенный идентификатор, выполнить следующую команду: SELECT * FROM grade_grades WHERE Itemid = '4' и USERID = '6'} (возвращает finalgrade)
Есть ли более простой способ получить все это в одном операторе MYSQL, а не запускать два запроса? (Причина, по которой я спрашиваю, заключается в том, что потенциал каждого из этих запросов будет выполняться от 100 до 10000 раз - в зависимости от количества пользователей в списке. В настоящее время - сервер останавливается примерно на 15 минут, если я запускаю запрос всех записей (без pagenation для расчета суммы)
вы можете «присоединиться» к общей колонке. есть ли? – Rahul
У вас есть соответствующие индексы в базе данных? – cichy