前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >资源的有限性与任务的复杂性之间的矛盾

资源的有限性与任务的复杂性之间的矛盾

作者头像
Dylan Liu
发布2019-07-01 13:20:55
5260
发布2019-07-01 13:20:55
举报
文章被收录于专栏:dylanliudylanliu

看了一篇文章How to Manage Connections Efficiently in Postgres, or Any Database, 文章讨论了如何管理Postgres数据库连接,列举了几种方式:

  1. 每个请求一个连接
  2. 连接复用
    1. 连接池
    2. 连接池管理工具

连接池作者提出了三种分别是Session pooling,Transaction pooling,Statement pooling,我们一般常用的是事务连接池,最开始是每个工程自行创建维护与数据库的连接池,但是在工程部署多了之后,部署工程数N,每个工程连接池的连接数量M,所需的总连接数 N*M 会超过数据库所允许的最大连接数,这种情况下我们需要一个总的连接池代理,工程不再直接连接到数据库中,由连接池管理工具来承接所有的连接请求,再请求到数据库中。

其实很多工具的出现都是由于资源的有限性与任务的复杂性之间的矛盾引起的,如果连接是无限的,那我们不需要讨论使用连接池技术,每个连接进来保持一个数据库连接就可以了,还有著名的 C10K 问题。我们使用复杂度更低的算法,优化各种场景下的参数,本质上都是由于计算资源的有限性导致的。

对于这个矛盾我们可用的工具有:

  • 算法优化
  • 异步
  • 就近原则(皓哥提到过的边缘计算)
  • 池(对象池,连接池等)
  • 局部性原理(缓存,JIT等)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档