#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 Оба, я просто обеспокоен скоростью, с которой сервер возвращает данные из базы данных.