2010-03-04 4 views
1

Я пытаюсь создать объект базы данных для себя в .net. Конструктор берет строку соединения и открывает соединение с MySQL db с помощью MySQL Connector. Он имеет такие функции, как:Пул соединений в .NET

function executeNonQuery(cmd as String) as Boolean 
function getOneResultQuery(query as String) as String 
function getDataReader(query as String) as MySQLDataReader 

Когда задача нуждается в db, она создает экземпляр объекта базы данных и вызывает его необходимые команды. Когда это делается с базой данных, она вызывает функцию disconnect().

Получает ли это преимущество пула соединений MySQL? Поскольку каждое задание подключается и отключается от БД (иногда одновременно открывается несколько подключений, иногда одно соединение открыто, иногда отключается подключение), соединения сохраняются в пуле? Должен ли я оставить одно постоянное соединение для включения пула соединений?

Является ли эта база данных объективной практикой или я переусердствовал?

ответ

0

Я не эксперт в MySql, но я знаю, как Connection Pooling работает на SQL Server, поэтому я искал его, чтобы проверить, правильны ли мои подозрения.

В соответствии с this post, объединение пулов в MySql от .Net аналогично, если вы используете ту же строку соединения (я считаю, что это ТОЧНО тот же самый чувствительный к регистру и т. Д.) Пул соединений будет автоматически реализован каркасом ,

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

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

+0

интересный. Но для большинства запросов время подключения больше времени для выполнения запросов. – cyrianox

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