Массовый импорт данных в базу данных - PullRequest
0 голосов
/ 01 июля 2018

Я использую сервер MySQL в качестве базы данных. Я хочу импортировать минимум 10000 записей в базу данных. Я обнаружил гем под названием activerecord-import, который импортирует данные в базу данных одним запросом. Будет ли импорт объемных данных одним запросом ухудшать производительность? Или я должен разделить эти записи на группы как 2000 записей и импортировать их?

1 Ответ

0 голосов
/ 01 июля 2018

Когда вы используете ActiveRecord для создания новой записи, он создает тонну объектов под капотом для правильного приведения каждого типа атрибута, когда вы устанавливаете его в модели и перед тем, как зафиксировать его в базе данных. Создание этих объектов и их поиск занимает время.

Когда вы выполняете запрос, для обхода требуется время.

Выполнение одного большого запроса на кучу работы занимает значительно меньше времени.

Будет ли это ухудшать производительность?

Конечно, у всех есть компромисс производительности, но использование чего-то вроде упомянутого вами драгоценного камня будет намного менее трудоемким (и, следовательно, компромиссом производительности), чем построчное.

Не бойтесь экспериментировать на месте и посмотреть, как все работает и действует. Если / когда придет время для масштабирования, тогда беспокойтесь об этом.

...