Мой компьютер в настоящее время работает к 48 часу левого оператора соединения. Это заявление о левом соединении состоит в объединении двух матриц, одна из которых имеет размер 47 млн. Х 3, другая - 45 млн. Х 2. Компьютер, на котором я работаю, - это i7 9-го поколения с 32 ГБ памяти и еще один 32-ГБ подкачка.
Первая таблица: clsecsoneclean
CREATE TABLE `clsecsoneclean` (
`bartime` datetime DEFAULT NULL,
`volume` smallint(5) unsigned DEFAULT NULL,
`cloneprice` float DEFAULT NULL
) ENGINE=InnoDB DEFAULT
CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
Вторая таблица clsecstwoclean
CREATE TABLE `clsecstwoclean` (
`bartime` datetime DEFAULT NULL,
`cltwoprice` float DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
А таблица вывода
stepone
CREATE TABLE `stepone` (
`bartime` datetime DEFAULT NULL,
`volume` smallint(5) unsigned DEFAULT NULL,
`cloneprice` float DEFAULT NULL,
`cltwoprice` float DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
с SQL оператором объединения:
INSERT INTO stepone
SELECT clsecsoneclean.bartime, clsecsoneclean.volume,
clsecsoneclean.cloneprice, clsecstwoclean.cltwoprice
FROM clsecsoneeclean
LEFT JOIN clsecstwoclean ON clsecsoneclean.bartime=clsecstwoclean.bartime
ORDER BY clsecsoneclean.bartime;
Произошла ли ошибка в моем операторе соединения?
Является ли это неподходящим местом для использования левого соединения, поскольку есть лучший способ выполнить sh, например, написать программу для себя на C для выполнения sh этой конкатенации. Моя конечная цель не в том, чтобы я запустил программу и мгновенно получил результат, но программа, работающая быстрее, была бы моей большой целью, потому что это не единственные матрицы, которые мне нужно объединить.