Тема: nodeJS и mysql
Показать сообщение отдельно
  #1 (permalink)  
Старый 06.09.2019, 21:55
Новичок на форуме
Отправить личное сообщение для vmetnev@mail.ru Посмотреть профиль Найти все сообщения от vmetnev@mail.ru
 
Регистрация: 27.05.2016
Сообщений: 4

nodeJS и mysql
Помогите разобраться с записью данных из nodejs в mysql

Есть код, который должен записать 1 млн. строк в mysql. Расчеты занимают много времени, поэтому после каждой итерации расчетов предполагалось, что код будет записывать одну строку в mysql и переходить к другим расчетам. Также предполагалось, что после записи каждой строки в mysql, эти данные становятся доступными для запросов в mysql из других программ.

Но в рамках решения получается другая ситуация. Сначала производятся все расчеты на всех итерациях (1 млн. итераций), и только потом данные записываются в mysql.

Другими словами строки записываются в mysql не одна за одной, а всем балком по итогам всех итераций.

Как это изменить, чтобы после каждой итерации строка, отправленная в mysql записывалась в базу данных и становилась доступна для внешних запросов из базы данных пока производятся другие расчеты.

const mysql = require("mysql");

// Create connection
const db = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "somePassword",
  database: "tickers"
});

// Connect
db.connect(err => {
  if (err) {
    throw err;
  }
  console.log("MySQL connected");


  for (var uniqueSets = 0; uniqueSets < 1000000; uniqueSets++) {

    // some programming logic here

    // then calling the procedure to commit data to mysql>>>
    sendToMYSQL(
      t1,
      t2,
      t3
    );
  }


function sendToMYSQL(t1, t2, t3) {
  let post = {
    t1: t1,
    t2: t2,
    t3: t3
  };
  let sql = "INSERT INTO scope SET?";
  let query = db.query(sql, post, (err, result) => {
    if (err) throw err;
    console.log(result);
  });
}
Ответить с цитированием