2016-01-26 7 views
1

Если Node является однопоточным, в чем преимущество использования пула для соединения с MySQL?
Если это так, когда я должен освободить соединение?Пул соединений MySQL на Nodejs

Разделить то же, постоянное, соединение со всем приложением недостаточно?

ответ

2

Nodejs однопоточный, правый. Но это также async, что означает, что один поток запускает несколько запросов sql, не дожидаясь результата. Результат обрабатывается только через обратные вызовы. Поэтому имеет смысл использовать пул соединений с несколькими соединениями. База данных, вероятно, многопоточная, что позволяет распараллелить запросы, хотя они были запущены последовательно. Однако нет никакой гарантии, в каком порядке обрабатываются результаты, если вы не проявляете к этому особого внимания.

Добавление об освобождении соединения

Если вы используете пул соединений, чем вы должны aquire/освободить каждое соединение из пула для каждого запроса. Здесь нет больших накладных расходов, поскольку пул управляет базовыми связями.

  1. Получить соединение из пула
  2. Запрос
  3. В связи релиз обратного вызова обратно в бассейн.
+0

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

+0

, если вы используете пул соединений, вы должны получать/освобождать каждое соединение из пула для каждого запроса. Здесь нет больших накладных расходов, поскольку пул управляет базовыми связями. Поэтому подключитесь к пулу -> query -> в обратном вызове обратно в пул. – luksch

+0

Ох ... Это так просто! Еще раз спасибо ... (пожалуйста, поместите это в ответ на будущее, D) – NemoStein

Смежные вопросы