Spec-Zone .ru
спецификации, руководства, описания, API
|
Соединитель/Сеть поддерживает объединение в пул соединения для лучшей производительности и масштабируемости с
интенсивными базой данных приложениями. Это включается по умолчанию. Можно выключить это или скорректировать его
показатели производительности, используя опции строки подключения Pooling
, Connection Reset
, Connection Lifetime
, Cache Server Properties
, Max Pool Size
и Min Pool Size
. См. Раздел
21.2.5.2, "Создавая Строку подключения Соединителя/Сети" для дополнительной информации.
Объединение в пул соединения работает, сохраняя собственное соединение с сервером, живым, когда клиент
избавляется от a MySqlConnection
. Впоследствии, если новое MySqlConnection
объект открывается, он будет создаваться из пула соединения, вместо того, чтобы создать новое собственное
соединение. Это улучшает производительность.
Чтобы работать как разработано, лучше позволять системе объединения в пул соединения управлять всеми
соединениями. Не создавайте глобально доступный экземпляр MySqlConnection
и затем
вручную откройте и закройте это. Это вмешивается в способ, которым объединение в пул работает и может привести к
непредсказуемым результатам или даже исключениям.
Один подход, который упрощает вещи, должен избежать вручную создавать a MySqlConnection
объект. Вместо этого используйте перегруженные методы, которые берут
строку подключения в качестве параметра. Используя этот подход, Соединитель/Сеть автоматически создаст, откроет,
закроет и уничтожит соединения, используя систему объединения в пул соединения для лучшей производительности.
Введенные Наборы данных и MembershipProvider
и RoleProvider
классы используют этот подход. Большинство классов, у которых есть
методы, которые берут a MySqlConnection
как параметр, также имейте методы, которые
берут строку подключения в качестве параметра. Это включает MySqlDataAdapter
.
Вместо ручного создания MySqlCommand
объекты, можно использовать статические методы
MySqlHelper
class. Они берут строку подключения в качестве параметра, и они
полностью поддерживают объединение в пул соединения.
Запускаясь с MySQL, Connector/Net 6.2, есть фоновое задание, которое работает каждые три минуты и удаляет соединения из пула, которые были неактивны (неиспользованный) больше трех минут. Уборка пула освобождает ресурсы на обеих сторонах клиента и сервера. Это - то, потому что на стороне клиента каждое соединение использует сокет, и на стороне сервера каждое соединение использует сокет и поток.
До этого изменения соединения никогда не удалялись из пула, и пула, всегда содержавшего пиковое число открытых
соединений. Например, веб-приложение, которое достигло максимума при 1000 параллельных соединений с базой
данных, использует 1000 потоков и 1000 открытых сокетов в сервере, никогда не освобождая те ресурсы от пула
соединения. Примечание, соединения, независимо от того какого возраста, не будет закрыто, если число соединений
в пуле будет меньше чем или равно набору значений Min Pool Size
параметр строки
подключения.