开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共2350人左右 1 + 2 + 3 + 4 +5 + 6 + 7)(1 2 3 4 5 群均已爆满,请不要在问有没有位置谢谢)
PostgreSQL 为什么接受大量连接到数据库需要连接池 (这是一篇2020年8月4日我写的文章,分析为什么,根本上也没有如某些diss postgresql 连接数不能太高问题非常严重的人所说的影响严重,实际上针对PostgreSQL 连接的问题,还真有一个可以说一下的,但鲜有人提到)
正文
————————————————————————————
最近在群里对于PostgreSQL的问题点就没有停止过,前两天PostgreSQL的老问题连接数不能过高的问题,又成为刺向PostgreSQL的一根芒刺。作为一个数据库渣男,大部分数据库都玩过了,的确从其他的数据库DBA的角度来看,PostgreSQL的确和其他的数据库在这里是不太一样,有些特殊的要求,注意我这里用的不太一样,不太一样不证明这就是一个缺陷,缺点,或者痛点。
其实从另一个角度上来说,我到觉得这是一件好事,我们来分析一下。从应用开发的角度来说,应用是可以横向扩展的,这在业内不是一个难题,无状态嘛,但在整体应用程序设计中,最重要的点就在数据库,数据库一直是应用程序设计中的一个瓶颈点,所以后来出现了分布式数据库,Tidb, OceanBase 等数据库产品,来从根本解决这个问题。
当然今天讨论的不是这个话题,咱们回到刚才的话题,PostgreSQL的连接数到底是不是他的弱点,我个人觉得,不是,我是从应用开发的角度来看这个问题的。
比如,MySQL可以支持6000的连接数,这个数是什么数,max_connections,最大连接数,这个数是active_sessions的,根据我们的工作经验,实际上大部分数据库的问题在active_sessions,而不是我们提到的max_connections。所以我们标定这个问题清晰了,解决问题就可以了。而不是抓住一个值,来去说明某个实际上并不重要的问题。终究咱们要通过实际情况和需求来去评判某个数据库的优良,而不是一个参数抓住就往死里按,这对解决实际问题是没有意义的。
那么核心的问题是active_sessions 的问题,这个问题对于PG,SQL SERVER, MySQL, Oracle, Polardb ,MongoDB 这都是一个概念,是否有充足的资源来去满足活跃的链接的访问,此时要比拼的就是 IOPS , CPU, Memory, 系统整体的性能,以及访问的方式是什么OLTP OR OLAP 等。
idle 连接数过多导致的问题,这不光是在PG,其他的数据库也存在类似的问题,只不过可能有人又要拿出来,进程和线程的模式来说事了。
在应用程序都在大量使用连接池的,JAVA自己的连接池,其中有一个目的与PostgreSQL的pgbouncer的功能是类似的,就是链接复用,只不过JAVA的连接池的功能没有pgbouncer在链接复用上的功能强而已。
从这里可以得出一些结论
1 从应用开发的角度来说,连接数高并不是一个好事,对于应用程序本身也是,所以应用程序本身有程序的连接池,来进行访问进程的复用。
2 大量idle的连接本身对于内存的开销尤其是数据库方面的开销是有负担的,超过内存的owner回导致OOM,这在任何数据库里面都一样,甚至有些数据库本身在这方面的内存管理能力不太好,导致内存溢出的问题。
3 讨论一个数据库可以进行的max_connections数据量多,并不是衡量一个数据库能力的高低的关键维度,甚至可能都不是一个维度。
4 PostgreSQL 本身有自己解决问题的方式,后期可能在PostgreSQL 快速迭代的情况下,这些问题可能会逐步解决,甚至和Oracle 类似有自己内部解决此类问题的方式。
综上所述,一个成熟的数据库管理人员,可以更加关注active_sesssion在不同的数据库中的表现,相信PostgreSQL 不会让您在这个位置失望。
最后说一个人家亲口和我说的事情,某云数据库架构师去某金融企业做回访,提到MySQL类数据库产品的一些新功能想介绍一下,这个金融系统的数据库负责人说,不太想听这个,能说说PostgreSQL类的产品吗,他比较想听。
置顶文章:
PostgreSQL 连接是否要通过SSL,为什么使用SSL 连接后,业务部门会投诉我?
PolarDB VS PostgreSQL "云上"性能与成本评测 -- PolarDB 比PostgreSQL 好?
优化技法:使用In-memory Disk代替PostgreSQL中的临时文件
PostgreSQL 具有createdb的用户无法创建数据库的原因(之一)
PostgreSQL 同样的语句 一会快 一会慢到底怎么回事,
MongoDB 系统IOPS 告警系统处于崩溃,优化语句从1秒优化到1毫秒解决问题
专访唐建法-从MongoDB中国第一人到TapData掌门人的故事
MySQL 8.0x 到 9.0均可能崩溃--云厂商开发指责 MYSQL不测试就推新版本?
往期热门文章:
PolarDB 最近遇到加字段加不上的问题 与 使用PolarDB 三年感受与恳谈
PostgreSQL 稳定性平台 PG中文社区大会--杭州来去匆匆
PolarDB Serverless POC测试中有没有坑与发现的疑问
临时工访谈:PolarDB Serverless 发现“大”问题了 之 灭妖记 续集
临时工访谈:庙小妖风大-PolarDB 组团镇妖 之 他们是第一
PolarDB for PostgreSQL 有意思吗?有意思呀
PolarDB Serverless POC测试中有没有坑与发现的疑问
MySQL 的SQL引擎很差吗?由一个同学提出问题引出的实验
临时工访谈:从国产数据库 到 普罗大众的产品 !与在美国创业软件公司老板对话
MySQL 的SQL引擎很差吗?由一个同学提出问题引出的实验
临时工访谈:我很普通,但我也有生存的权利,大龄程序员 求职贴
临时工说:DBA 是不是阻碍国产数据库发展的毒瘤 ,是不是?从国产DB老专家的一条留言开始 (其实更好看的是文章下方的留言)
感谢 老虎刘 刘老师 对 5月20日 SQL 问题纠正贴 ---PostgreSQL 同一种SQL为什么这样写会提升45%性能
PostgreSQL 同一种SQL为什么这样写会提升45%性能 --程序员和DBA思维方式不同决定
PostgreSQL 熊灿灿一句话够学半个月 之 KILL -9
临时工访谈:庙小妖风大-PolarDB 组团镇妖 之 他们是第一 (阿里云组团PK笔者实录)
临时工访谈:金牌 “女” 销售从ORACLE 转到另类国产数据库 到底 为什么?
临时工访谈:无名氏意外到访-- 也祝你好运(管理者PUA DBA现场直播)
PostgreSQL 分组查询可以不进行全表扫描吗?速度提高上千倍?
PostgreSQL PG_DUMP 工作失败了怎么回事及如何处理
PostgreSQL 为什么也不建议 RR隔离级别,MySQL别笑
临时工访谈:OceanBase上海开大会,我们四个开小会 OB 国产数据库破局者
临时工说:OceanBase 到访,果然数据库的世界很卷,没边
PolarDB for PostgreSQL 有意思吗?有意思呀
PostgreSQL 玩PG我们是认真的,vacuum 稳定性平台我们有了
临时工说:裁员裁到 DBA 咋办 临时工教你 套路1 2 3
临时工说:OceanBase 到访,果然数据库的世界很卷,没边
MONGODB ---- Austindatabases 历年文章合集
MYSQL --Austindatabases 历年文章合集
POSTGRESQL --Austindatabaes 历年文章整理
POLARDB -- Ausitndatabases 历年的文章集合
PostgreSQL 查询语句开发写不好是必然,不是PG的锅
SQL SERVER 如何实现UNDO REDO 和PostgreSQL 有近亲关系吗
MongoDB 2023纽约 MongoDB 大会 -- 我们怎么做的新一代引擎 SBE Mongodb 7.0双擎力量(译)
MongoDB 2023年度纽约 MongoDB 年度大会话题 -- MongoDB 数据模式与建模
MongoDB 会丢数据吗?在次补刀MongoDB 双机热备
临时工说:从人性的角度来分析为什么公司内MySQL 成为少数派,PolarDB 占领高处
PostgreSQL 字符集乌龙导致数据查询排序的问题,与 MySQL 稳定 "PG不稳定"
PostgreSQL Patroni 3.0 新功能规划 2023年 纽约PG 大会 (音译)
Austindatabases 公众号,主要围绕数据库技术(PostgreSQL, MySQL, Mongodb, Redis, SqlServer,PolarDB, Oceanbase 等)和职业发展,国外数据库大会音译,国外大型IT信息类网站文章翻译,等,希望能和您共同发展。
截止今天工发布1200篇文章