Я переношу нашу базу данных Amazon RDS MsSQL в RDS Aurora, но меня очень впечатляет низкая производительность Aurora.
UPDATE Cars
SET CurrentDriver_id = (
SELECT Drivers.Id
FROM Drivers
WHERE Drivers.Car_id = Cars.Id
ORDER BY Drivers.Id DESC
LIMIT 1)
WHERE Cars.Id BETWEEN 1 AND 500;
Мне пришлось ограничиться первыми 500 записями, чтобы я мог видеть результаты даже в Aurora.
Даже с ограничением в 500 строк Aurora занимает невероятно 55 секунд, в то время как MSQL для всех 70 000 записей занимает менее 1 секунды. В этом сценарии MsSQL работает почти в 8000 раз быстрее, чем Aurora.
Темой этого раздела является не сам запрос и не то, как его можно улучшить. Это простое обновление, работающее на 70 000 автомобилей и 220 000 водителей. Это не должно быть ничего для базы данных.
Cars.Id и Drivers.Id являются первичными ключами. Никаких индексов и внешних ключей.
Ожидается ли это?!
Изменить: 1. Оба RDS - db.t2.medium 2. MsSQL - это рабочий сервер с сотнями пользователей, а Aurora - только я.
optimize
таблицы в Aurora после переноса данных в Aurora? - person Mark B   schedule 17.08.2017