Составил запрос по выборки максимальных значений из двух полей с датами, используя несколько связанных таблиц:
SELECT mes.measureCommFromTab, p.XMLizmerenije, p.XMLdatetime, p.measureComm_id
FROM `xmlmessagetab` p
INNER JOIN `indexobjectstab` ps
ON ps.keyID = p.indexObjectsTab_id
INNER JOIN `measurecommtab` mes
ON mes.keyID = p.measureComm_id
WHERE ps.indexObject = '55285'
AND p.XMLdatetime = (SELECT max(p.XMLdatetime)
FROM `xmlmessagetab` p
INNER JOIN `indexobjectstab` ps
ON ps.keyID = p.indexObjectsTab_id
WHERE ps.indexObject = '55285' )
AND p.datetimeMess = (SELECT max(p.datetimeMess) FROM `xmlmessagetab` p INNER JOIN `indexobjectstab` ps ON ps.keyID = p.indexObjectsTab_id WHERE ps.indexObject = '55285' )
Запрос выполняется две с половиной минуты, что не выносимо долго:(
1. Подскажите пожалуйста, может быть есть способ оптимизировать данный запрос?
2. Есть план "Б", при записи данных в БД, дублировать последнюю дату поля "XMLdatetime" и потом использовать её для составления запроса на выборку по последней дате, что скажете об этом варианте?