На этот раз я спрошу о том, что что-то работает в целом, но когда данные огромны, они терпят неудачу.
Мой случай такой же в этом посте.
как запроситьстроки, которые имеют наибольшее значение столбца среди строк, имеющих одинаковое значение для одного из столбцов
Я использовал
SELECT `ID`, `PDBID`, `Chain`, `UniProtID`, `PDBASequence`, `pI`, `experiment`, `resolution`
FROM protein p
WHERE `resolution`= (SELECT MAX(`resolution`)
FROM protein
GROUP BY `PDBASequence`
HAVING `PDBASequence` = p.`PDBASequence`)
Я также пытался:
SELECT `ID`, `PDBID`, `Chain`, `UniProtID`, `PDBASequence`, `pI`, `experiment`, `resolution`
FROM protein p
WHERE `resolution`= (SELECT MAX(`resolution`)
FROM protein
WHERE `PDBASequence` = p.`PDBASequence`)
Iдолжны группироваться по последовательностям в соответствии с PDBASequence.Но в то же время выбранный представитель должен иметь максимальное значение разрешения.
Я пробовал этот код на небольшом наборе.Работать без проблем.Однако, когда я попытался запустить его на реальной таблице, содержащей 80980 строк, выполнение занимает почти всегда.Кроме того, мой другой компьютер дает Mysql сервер исчезла ошибка из-за типа исполнения и размера кармана.Я исправил настройки в my.ini и снова запустил код.Ничего не изменилось.По-прежнему нет результата :( Что мне делать? Спасибо, я назначил индекс разрешения в таблице белков. Однако он ничего не изменил.