Пул подключений в небольшом приложении - PullRequest
1 голос
/ 14 апреля 2011

У меня есть несколько простых вопросов о пуле соединений и передовых практиках. Я планирую и пишу небольшое приложение, которое опирается на базу данных MySQL. В этом приложении я использую модули и плагины, которые могут создавать соединения. Приложение имеет прямой доступ к базе данных MySQL и, вероятно, будет единственным клиентом, подключающимся к базе данных.

Вот мои первые вопросы: пул соединений будет иметь смысл? Это не имеет значения, или я должен отключить это? Каковы ваши переживания?

С другой стороны, в моей компании мы разрабатываем другое программное обеспечение, которое имеет один сервер базы данных MySQL и много клиентов. Каждый клиент может открыть несколько окон, в которых могут быть активны несколько соединений. Есть большая вероятность, что это программное обеспечение будет использовать основную концепцию моего нового приложения. Клиенты подключаются напрямую к базе данных. Поэтому я думаю, что имеет смысл написать серверное приложение, которое обрабатывает пулы и организует соединения, я прав? Какой смысл в том, чтобы каждый клиент использовал свой собственный пул соединений? Мы говорим о 1-50 клиентах с 1-10 соединениями.

Как вы думаете, лучше всего написать небольшое серверное приложение для обработки пула соединений?

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

Привет,
Simon

P.S .: Это приложение для Windows. Не веб-сервис.

1 Ответ

0 голосов
/ 19 мая 2011

Пул соединений даст вам дополнительную производительность, фактически без нее производительность может быть проблемой даже для небольшого приложения (это зависит от количества вызовов, данных и т. Д.).

Подумайте о правильной обработке ваших подключений, чтобы избежать ошибок и тайм-аутов «максимального размера пула». Хорошей практикой является обработка вашего соединения следующим образом:

using (SqlConnection conn = new SqlConnection(myConnectionString))
  {
        conn.Open();
        doSomething(conn);
  }

с использованием гарантирует, что соединение будет надлежащим образом закрыто / утилизировано. Прочтите эту статью , в которой приведены некоторые советы, которые можно применять как для MSSQL, так и для MySQL.

Рассмотрим также использование хранимых процедур. Надеюсь, это поможет вам начать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...