Будет ли множественное соединение.query()-ы замедлять соединение в node.js / mysql?

#mysql #node.js #node-mysql

#mysql #node.js #узел-mysql

Вопрос:

У меня есть этот веб-сайт, который использует одни и те же запросы снова и снова. Я думал о создании небольших функций, передаче ему соединения и других аргументов и повторном использовании функций.
Например, вот типичный способ использования нескольких операторов:

 pool.getConnection((err, connection) => {
    if(err) return console.log(err);

    connection.query("SELECT * FROM customers; SELECT * FROM orders;", (err, rows) => {
        if(err) return console.log(err);

        const customers = rows[0];
        const orders = rows[1];

        return {
            customers,
            orders
        }
    })
    connection.release()
})
  

Однако давайте предположим, что я буду повторно использовать одни и те же запросы снова и снова. Следовательно, я могу сделать что-то вроде этого:

 const getCustomers = (connection, callback) => {
    connection.query("SELECT * FROM customers;", (err, customers) => {
        if(err) return callback(err, null);

        return callback(null, customers)
    })
}

const getOrders = (connection, callback) => {
    connection.query("SELECT * FROM orders;", (err, orders) => {
        if(err) return callback(err, null);

        return callback(null, orders)
    })
}

pool.getConnection((err, connection) => {
    if(err) return console.log(err);

    getCustomers(connection, (err, customers) => {
        if(err) return console.log(err);

        getOrders(connection, (err, orders) => {
            if(err) return console.log(err);

            return {
                customers,
                orders
            }
        })
    })
    connection.release()
})
  

Так будет ли использование нескольких подключений замедлять работу сервера? Скорее 1 соединение, которое имеет несколько запросов? Кроме того, это правильный способ использования этой библиотеки? connection.release() используется правильно?

Комментарии:

1. Не беспокойтесь о преждевременной оптимизации взаимодействия с сервером. Вы действительно извлекаете всех клиентов и заказы отдельно? Они все тебе нужны? Если вам нужно сопоставление клиент-> заказ, используйте JOIN . Каков размер этих двух таблиц? Похоже, вы не используете SQL для выполнения того, в чем он действительно хорош, и собираетесь делать это в своем собственном коде.

2. @danblack нет, нет, это всего лишь случайный пример, да, я действительно знаю все о запросах и выполнении JOIN запросов. Есть много запросов, которые я повторяю несколько раз снова и снова, чтобы выполнить проверки на моем веб-сайте. И спасибо вам за ваш ответ.

3. Как именно выполнение нескольких последовательных запросов к одному и тому же соединению замедлит соединение? И вы спрашиваете о замедлении соединения (ваш заголовок) или сервера (ваш вопрос)?

4. @Marquisoflorn Оба, я просто обеспокоен скоростью, с которой сервер возвращает данные из базы данных.