什么是连接池?

bal*_*569 19 asp.net connection-pooling

我听过连接池这个术语,并通过谷歌搜索来查找一些参考资料......但是无法理解何时使用它....

  • 我什么时候应该考虑使用连接池?

  • 连接池的优点和缺点是什么?

任何建议....

nai*_*sts 19

我们的想法是,您不打开和关闭与数据库的单个连接,而是创建一个打开连接的"池",然后重用它们.一旦完成单个线程或过程,它就会将连接放回池中,以便其他线程可以使用它.其背后的想法是,通常您没有超过50个并行连接,并且打开连接需要耗费时间和资源.

  • 它不一定专门针对数据库.连接池对于需要在请求结束时不需要关闭的连接的任何内容都很有用. (2认同)

ewe*_*nli 7

我什么时候应该考虑使用连接池?

  • 始终为生产系统.

连接池有哪些优缺点?

好处:

  • 表现.使用固定的连接池,避免昂贵的连接创建和释放.
  • 共享基础设施.如果您的数据库在多个应用程序之间共享,则您不希望一个应用程序耗尽所有连接.汇集帮助以限制每个应用程序的连接数.
  • 许可.根据您的数据库许可证,并发客户端的数量是有限的.您可以使用授权连接数设置池.如果没有可用的连接,客户端将等待,直到有一个可用或超时.
  • 连接问题.客户端和数据库之间的连接池可以为客户端透明地提供诸如"ping"测试,连接重试等便利功能.在更糟糕的情况下,有一个超时.
  • 监控.您可以监视池,查看活动连接的数量等.

坏处:

  • 你需要设置它并配置它,这通常是花生.


Sam*_*eff 5

每当建立连接的时间大于零(几乎总是)并且存在足够的平均使用量时,您应该使用连接池,以便在超时之前可能再次使用该连接.

优点是打开/关闭新连接要快得多,因为它们没有真正打开和关闭,它们只是检出/进入池中.

缺点是在某些连接池中,如果所有池连接都在使用中,您将收到错误.这通常是一件好事,因为它表示调用代码没有关闭连接的问题,但是如果您合法地需要比池中更多的连接并且没有正确配置它,那么您可能会在其他情况下得到错误.

当然,根据您正在使用的特定环境和数据库,还有其他优缺点.