У меня есть запрос с подзапросом, но таблица подзапроса содержит около 500 000 записей, и выполнение этого запроса занимает слишком много времени. Как я могу ускорить этот запрос? Любые предложения:Ошибка производительности сортировки MySQL
SELECT ID, VehicleID, Plate, VehicleType,
COALESCE(
(SELECT EngineState
FROM Locations
WHERE Locations.VehicleID = Clients.VehicleID ORDER BY ID DESC LIMIT 1),
0
) EngineState
FROM Clients
WHERE ID IN (SELECT ClientID FROM UserClients WHERE [email protected]);
Там еще 3 колонки, которые запрашивают последнюю запись из таблицы Locations:
COALESCE(
(SELECT EngineState FROM Locations
WHERE Locations.VehicleID = Clients.VehicleID ORDER BY ID DESC LIMIT 1),
0
) EngineState
Как я вижу сортировки результатов в таблице Locations является фактором производительности там. Таблица мест, если каждую минуту заполняется данными о местонахождении 1000 автомобилей. х, у, скорость ...
Могу ли я проиндексировать поле varchar (64)? Потому что VehicleID является VarChar (64) ... –
@ Хасан: почему, вы можете. – Quassnoi
Также Locations table engine - MyISAM ..? –