Каждую неделю мне нужно загрузить 50K ~ 200K строк записей из необработанного CSV-файла в мою систему.Проверьте, существуют ли записи для вставки или обновления. В MYSQL
В настоящее время я решил загрузить CVS в таблицу темп (пуст после процесса), затем запустите мою Хранимую процедуру, чтобы манипулировать данными в разных соответствующих таблицах в моей системе. Если записи уже существуют, будет запущено update запрос (80% записей в CSV уже находятся в моей системной таблице), если не существует Вставьте записей.
Проблема, с которой я столкнулся сейчас, - это таблицы, которые растут до нескольких миллионов записей, прибл. 5-6 миллионов за каждую таблицу. "Select Exist" кажется очень медленным тоже, после этого я меняю на левые таблицы объединения партиями также медленно. Даже я только что загрузил 5 тыс. Записей, это может занять около нескольких часов, чтобы закончить процесс Сохраненной процедуры.
Любые хорошие и более быстрые решения для обработки огромных записей при сравнении таблиц для определения записей вставки/обновления?
Спасибо!
Джек
Начните с индексирования таблиц. Затем вы можете посмотреть несколько онлайн-статей для управления и масштабирования больших баз данных. –
Раньше я индексировал. В настоящее время он начинает плохо работать, когда таблицы растут до миллионов строк. – Jack
Посмотрите на инструкцию MySQL «REPLACE INTO», это может быть решение, которое вы ищете: https://dev.mysql.com/doc/refman/5.0/en/replace.html –