首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么PostgreSQL在Windows上速度这么慢?

问为什么PostgreSQL在Windows上速度这么慢?
EN

Stack Overflow用户
提问于 2009-07-21 23:05:05
回答 3查看 11.1K关注 0票数 13

我们使用MySql运行了一个应用程序。我们发现MySql不适合我们的应用程序,因为我们发现它不支持PostGIS所具有的一些地理信息系统功能(注意: mysql只支持最小边界矩形地理信息系统搜索)。

因此,我们将数据库更改为PostgreSQL。然后我们发现,与MySQL5.1相比,在Windows上运行的PostgreSQL8.2要慢得多。我的意思是慢了4到5倍。

为什么会这样呢?配置中是否有我们需要更改的内容?

我从其他网站上找到了一些评论,比如这

更新:我们发现缓慢的原因是由于我们插入到DB中的BLOB。我们需要能够以10-15MB/s的速度插入BLOB,我们正在为插入/读取的每个BLOB使用libpq的lo_read和lo_write。这是最好的方法吗?以前有人用Pgsql来插入大BLOB吗?

编辑:我听说PgSql最近刚移植到Windows。这可能是其中一个原因吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-22 07:12:07

在某些情况下,与其他解决方案相比,Windows上的PostgreSQL支付了额外的开销,这是因为我们在移植它时所做的权衡。

例如,PostgreSQL每个连接使用一个进程,MySQL使用一个线程。在Unix上,这通常不是一个明显的性能差异,但是在Windows上创建新进程是非常昂贵的(这是因为缺少了fork()系统调用)。因此,在使用PostgreSQL时,在Windows上使用持久连接或连接池程序要重要得多。

我看到的另一个问题是,Windows上的早期PostgreSQL默认情况下将确保它的写操作通过写缓存--即使它是电池支持的。AFAIK,MySQL不这样做,它将极大地影响写入性能。现在,如果你有一个不安全的硬件,比如便宜的硬盘,这实际上是必需的.但是,如果您有一个电池支持的写缓存,您想要将其更改为常规的fsync。现代版本的PostgreSQL (当然是8.3)将默认为open_datasync,这将消除这种差异。

您也没有提到如何调优数据库的配置。默认情况下,PostgreSQL附带的配置文件非常保守。如果你没有改变任何东西,你肯定需要看一看。在PostgreSQL维基上有一些调优建议。

要提供更多的细节,您必须提供更多的详细信息,说明什么运行缓慢,以及如何调整数据库。我建议给pgsql通用邮件列表发一封电子邮件。

票数 21
EN

Stack Overflow用户

发布于 2009-07-22 00:00:28

虽然PostgreSQL的Windows相对较新,但我的理解是,它的性能与其他版本一样好。但是它绝对是一个端口;几乎所有的开发人员都主要或只在Unix/Linux/BSD上工作。

你真的不应该在Windows上运行8.2。在我看来,8.3是第一个真正做好生产准备的Windows版本,8.4更好。不管怎么说,8.2已经过时了,如果你能设法升级的话,你会收获很多好处。

另一件需要考虑的事情是调优。PostgreSQL需要比MySQL更多的调优才能达到最佳性能。您可能想要考虑张贴到邮寄名单之一,以帮助更多的基本调整。

票数 7
EN

Stack Overflow用户

发布于 2009-07-22 00:06:28

PostgreSQL在一定程度上已经比MySQL慢了(当您拥有一个大得离谱的数据库时,它实际上更快)。只是我,这不是造成你的问题,但请记住这一点。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1162206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档