gpt4 book ai didi

mysql - 为什么 PostgreSQL 在 Windows 上这么慢?

转载 作者:IT老高 更新时间:2023-10-29 00:10:28 25 4
gpt4 key购买 nike

我们有一个使用 MySql 运行的应用程序。在发现 MySql 不支持 PostGIS 具有的某些 GIS 功能后,我们发现 MySql 不适合我们的应用程序(注意:mysql 仅支持最小边界矩形 GIS 搜索)。

因此我们将数据库更改为 PostgreSQL。然后我们发现在 Windows 上运行的 Postgresql 8.2 与 Mysql 5.1 相比要慢得多。较慢,我的意思是大约慢 4-5 倍。

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

我从其他网站上找到了一些评论,例如 this :

更新:我们发现缓慢的原因是我们插入到数据库中的 BLOB。我们需要能够以 10-15 MB/s 的持续速率插入 BLOB。我们正在为我们插入/读取的每个 BLOB 使用 libpq 的 lo_read 和 lo_write。那是最好的方法吗?有没有人使用过 Pgsql 以高速率插入大 BLOB?

编辑:我听说 PgSql 最近才移植到 Windows。这可能是原因之一吗?

最佳答案

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

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

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

您也没有提及您如何调整数据库的配置。默认情况下,PostgreSQL 附带的配置文件非常保守。如果你在那里没有改变任何东西,你肯定需要看看它。 PostgreSQL wiki 上提供了一些调整建议。 .

要提供更多详细信息,您将必须提供更多详细信息,具体说明运行缓慢的原因,以及您如何调整数据库。我建议向 pgsql-general 邮件列表发送电子邮件。

关于mysql - 为什么 PostgreSQL 在 Windows 上这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1162206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com