当前位置:  开发笔记 > 后端 > 正文

如果postgres的性能低,我应该选择哪个db

如何解决《如果postgres的性能低,我应该选择哪个db》经验,为你挑选了4个好方法。

在一个支持超过5000个用户的网络应用程序中,postgres正在成为瓶颈.

添加新用户需要1分钟以上.(即使在优化后和Win 2k3上)

那么,作为一个设计问题,哪个其他DB可能会更好?



1> SquareCog..:

最有可能的是,它不是PostgreSQL,而是你的设计.换鞋很可能不会让你成为更好的舞者.

你知道什么导致缓慢吗?是争论,更新索引的时间,寻求时间?是否所有5000个用户都试图在尝试插入第5001个用户的同一时间写入用户表?那,我相信会导致问题.您可能必须使用经过调整以处理极端并发性的内容,例如Oracle.

MySQL(我被告知)可以进行优化,以便比PostgreSQL更快地进行读取,但是在它们支持的#transaction/sec方面,两者都非常快,并且听起来不像是你的问题.


PS我们在评论中对一个不同的答案进行了一些讨论 - 请注意,世界上一些最大的,存储方面的数据库是使用Postgres实现的(尽管它们倾向于调整引擎的内部).Postgres可以非常好地扩展数据大小,并发性能比大多数更好,并且在使用它时可以非常灵活.

我希望有更好的答案,在技术发明30年后,我们应该能够让用户对系统的了解不那么详细,以使其顺利运行.但是,我所知道的所有产品都需要广泛的思考和调整.我想知道StackOverflow的创建者是否可以分享他们如何处理数据库并发和可伸缩性?他们使用SQLServer,我知道的很多.


PPS所以,尽管有机会,我昨天首先陷入了Oracle的并发问题.我并不完全确定我是对的,不是DBA,但是这些人解释的是这样的:我们有大量的进程连接到数据库并检查系统字典,这显然会强制对它进行短暂锁定尽管这只是一个阅读.解析查询会做同样的事情.所以我们(在具有1000个对象的多tera系统上)有很多强制等待时间,因为进程彼此锁定在系统之外.我们的系统字典也过大,因为它包含每个分区的所有信息的单独副本,每个分区可以有数千个.这与PostgreSQL没有多大关系,但外卖是 - 除了检查你的设计外,



2> Milen A. Rad..:

请更改运行Postgres的操作系统 - Windows端口虽然对扩展用户群非常有用,但仍然与(更老的和更成熟的)Un*x端口(尤其是Linux端口)不相上下.



3> Daniel Honig..:

我认为你最好的选择仍然是PostgresSQL.花些时间确保您已正确调整应用程序.在您确信已达到调整可以完成的限制后,开始缓存所有可能的内容.之后,开始考虑转移到异步主从设置...还在运行OLTP的同一数据库上运行OLAP类型功能吗?



4> Seun Osewa..:

让我向您介绍几乎所有数据库服务器的最简单,最实用的方法,如果数据库设计真正最佳:只需加倍您的内存即可提高性能.这就像魔术一样.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有