TypeOrm не выполняет массовое сохранение при использовании MariaDb в качестве базы данных - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь вставить более 1000 записей в базу данных mariadb.

let repo = await this.getRepository(RawOhlcv)
return await repo.save<RawOhlcv>(entityObj, { chunk: 1 })

Это журналы typeorm

query: INSERT INTO `raw_ohlcv`(`raw_ohlcv_id`, `stock_id`, `symbol`, `date`, `open`, `high`, `low`, `close`, `volume`, `is_active`, `created_at`, `updated_at`) VALUES (DEFAULT, DEFAULT, ?, ?, ?, ?, ?, ?, ?, ?, DEFAULT, DEFAULT) -- PARAMETERS: ["20MICRONS","2019-09-04",33,34.2,33,33.05,8787,true]
query: SELECT `RawOhlcv`.`raw_ohlcv_id` AS `RawOhlcv_raw_ohlcv_id`, `RawOhlcv`.`is_active` AS `RawOhlcv_is_active`, `RawOhlcv`.`created_at` AS `RawOhlcv_created_at`, `RawOhlcv`.`updated_at` AS `RawOhlcv_updated_at` FROM `raw_ohlcv` `RawOhlcv` WHERE `RawOhlcv`.`raw_ohlcv_id` = ? -- PARAMETERS: [617]
query: INSERT INTO `raw_ohlcv`(`raw_ohlcv_id`, `stock_id`, `symbol`, `date`, `open`, `high`, `low`, `close`, `volume`, `is_active`, `created_at`, `updated_at`) VALUES (DEFAULT, DEFAULT, ?, ?, ?, ?, ?, ?, ?, ?, DEFAULT, DEFAULT) -- PARAMETERS: ["21STCENMGM","2019-09-04",12.3,12.3,12.15,12.3,244,true]
query: SELECT `RawOhlcv`.`raw_ohlcv_id` AS `RawOhlcv_raw_ohlcv_id`, `RawOhlcv`.`is_active` AS `RawOhlcv_is_active`, `RawOhlcv`.`created_at` AS `RawOhlcv_created_at`, `RawOhlcv`.`updated_at` AS `RawOhlcv_updated_at` FROM `raw_ohlcv` `RawOhlcv` WHERE `RawOhlcv`.`raw_ohlcv_id` = ? -- PARAMETERS: [618]
query: INSERT INTO `raw_ohlcv`(`raw_ohlcv_id`, `stock_id`, `symbol`, `date`, `open`, `high`, `low`, `close`, `volume`, `is_active`, `created_at`, `updated_at`) VALUES (DEFAULT, DEFAULT, ?, ?, ?, ?, ?, ?, ?, ?, DEFAULT, DEFAULT) -- PARAMETERS: ["3IINFOTECH","2019-09-04",1.7,1.75,1.7,1.7,405693,true]
query: SELECT `RawOhlcv`.`raw_ohlcv_id` AS `RawOhlcv_raw_ohlcv_id`, `RawOhlcv`.`is_active` AS `RawOhlcv_is_active`, `RawOhlcv`.`created_at` AS `RawOhlcv_created_at`, `RawOhlcv`.`updated_at` AS `RawOhlcv_updated_at` FROM `raw_ohlcv` `RawOhlcv` WHERE `RawOhlcv`.`raw_ohlcv_id` = ? -- PARAMETERS: [619]

Таким образом, каждая запись вставляется индивидуально и существуетдаже запрос на выбор, выполняемый перед следующей записью.

В то время как когда я пытаюсь сделать то же самое с базой данных postgres, он вставляет все записи сразу.

Как мне выполнить массовую вставку сMariaDB

1 Ответ

0 голосов
/ 24 сентября 2019

Запрос сохранения, предоставленный Typeorm, интерпретируется следующим образом.Но если вы используете чистый запрос вставки, то он выполняет массовую вставку

let repo = await this.getRepository(RawOhlcv)
await repo
  .createQueryBuilder()
  .insert()
  .values(entityArray)
  .execute()
...