我们试图在我们的应用程序中评估PostgreSQL数据库作为Oracle数据库的替代品。我们使用PostgreSQL 9.5,它安装在具有128 GB内存,32个CPU内核和SSD存储的Linux机器上。连接池和分布式事务由JBoss 7应用程序服务器管理,SQL查询由Hibernate 4生成/执行。大多数表拥有数千万行,其中一行具有数亿行。总共大约3,000个数据库连接(它们由应用程序服务器汇集)是活动的并且同时使用。我们修改了一些查询,创建了缓慢的索引,根据文档等调整了数据库和操作系统设置。但是,吞吐量要慢几倍,最终DB响应时间增加10-20倍。数千个连接和分布式事务的PostgreSQL数据库性能问题
我做了一些谷歌上搜索,我找不到任何关于使用PostgreSQL数据库以同样的方式别人(AB)的信息:
- 使用使用这种大量的活动数据库连接
- 十万分布式事务(预备事务)
- 存储数十亿列在一个表中
Oracle没有处理更高的负载任何问题。我希望分享你的经验,建议,链接等
感谢
Zalando使用Postgres,他们同时为很多客户提供服务。所以它不像引擎笨重我可以告诉你:)对于处理大型表分区派上用场。这个问题相当广泛,但我猜你不会得到你期望的答案。 –
感谢您的评论。 但基于他们的GIT repo(https://github.com/zalando/patroni/search?utf8=%E2%9C%93&q=prepared),他们不使用分布式事务:max_prepared_transactions = 0 默认值对于max_connections是100.我的确知道生产值可能会有所不同。 –
你有你自己的交易经理吗?您是否正在使用分布式事务来允许跨群集中不同数据库的全局事务?你是否考虑过补偿? –