旧的question提出了Windows上PostgreSQL的性能问题。从那时起,对PostgreSQL进行了一些重大改进...... Windows和Linux品种之间的性能差距有所改善吗?
答案 0 :(得分:4)
PostgreSQL最近在Windows上运行得相当好。您倾向于需要使用较小的shared_buffers值,因此在阅读为Linux或BSD编写的调优建议时请注意这一点。性能差距缩小了很多,但经过良好调整的Linux + Pg仍然会超过经过良好调整的Windows + Pg。
关于Pg性能的大多数(非文件系统相关的)建议现在适用于Windows和Linux,AFAIK。调整random_page_cost和effective_cache_size以获得最佳性能非常重要,与Linux / BSD相同,您可能会发现查询计划器选择在您执行此操作之前是次优的。同样,您需要密切关注磁盘子系统,尽可能多地使用RAM等等。
Windows上存在大量连接数问题,所以我建议将PgBouncer或PgPool-II放在它前面,除非你有一个自己连接池的appserver。对于* nix上的大量并发连接,Pg表现不佳,在Windows上情况更糟。
Windows上的连接启动/拆卸成本更高,这是尽可能使用连接池的另一个原因。 Pg无法使用fork()
来有效地启动新的后端,它必须EXEC_BACKEND
并执行比Linux上更多的新进程设置。
虽然它更侧重于Linux / BSD,但我推荐由PostgreSQL重要贡献者Greg Smith推出的“PostgreSQL高性能”一书。如果你担心Pg的表现,那么这是最好的选择。
答案 1 :(得分:1)
链接的问题涵盖了2006年推出的PostgreSQL 8.2。最新版本是9.1,并且具有一些主要的性能和功能改进。但是,性能可能总是存在差距,因为Linux中有比Windows更多的选项 - 文件系统,驱动程序等的选择。
话虽如此,如果你在Linux中做出错误的选择,你最终可能会变得更糟。你知道性能是否可以接受的唯一方法是尝试它我害怕 - 这完全取决于你的使用模式。
答案 2 :(得分:0)
您可以浏览相关版本的Release Notes。但是,所提到的改进是否会在特定情况下对您有所帮助是另一回事。目前还不清楚相关问题中的问题是否会影响您的具体情况。
答案 3 :(得分:0)
一些基本的测试表明PostgreSQL运行良好 - 当你使用少于几百个连接时,速度类似于MSSQL。我知道一个安装,其中PostgreSQL用于MS上的“实时”应用程序。仍有一些差距,但对于平时负荷并不显着。
其他一些问题是RAM。在MS上你需要更多的内存才能拥有相同的速度。服务器不能每次都使用交换。