Mysql vs Oracle XE vs Postgresql.可扩展性和性能,选择哪个?

D.M*_*ill 10 mysql oracle postgresql database-performance

我知道这是非常广泛的,所以让我给你一个设置,并具体说明我的重点.

设置:

我正在使用MYSQL使用现有的PHP应用程序.几乎所有表都使用MYISAM引擎,并且大部分都包含数百万行.其中一个最大的表使用EAV设计,这是必要但对性能的影响.该应用程序是为了最好地利用MYSQL缓存而编写的.它每页加载请求相当数量的请求(部分原因是这样),并且复杂到足以在每次页面加载时通过整个数据库的大多数表.

优点:

  • 免费
  • MYISAM表支持对应用程序很重要的全文索引

缺点:

  • 通过设置方式,MYSQL仅限于一个CPU用于整个应用程序.如果运行一个非常苛刻的查询(或服务器负载很大),它将排队所有其他人使站点无响应
  • MYSQL缓存和缺少"WITH"或"INTERSECT"意味着我们必须打破查询以更好地使用缓存.因此乘以查询的数量.例如,在具有数百万行的多个表上使用子查询(即使具有良好的索引)对于当前/上调负载而言是一个大问题,并且约束在上面指出(CPU使用率)

感觉需要在上升年度扩大规模,但不一定准备立即支付许可费用,我一直在考虑重写应用程序和切换数据库.

正在考虑的三个选项是继续使用mysql但使用INNODB引擎,这样我们可以利用更多的CPU功率.当我们需要向上扩展4Gb数据库,1Gb RAM或1 CPU限制(我们还没有达到目标)时,适应Oracle XE并获得许可证.或者适应PostgreSQL

所以问题是:

  • 在这三种情况下,丢失全文索引会如何影响性能(oracle或postgreSQL是否具有等效性?)
  • oracle和postgreSQL如何在子查询,WITH和UNION/INTERSECT语句上利用缓存
  • Oracle和PostgreSQL如何利用多核/ CPU功能(如果/当我们获得oracle许可证时)

我认为这已经很多了,所以我会在这里停下来.如果有赞美的链接,我不介意简单/不完整的答案.

如果您需要更多信息,请告诉我

在此先感谢各位,感谢您的帮助.

Igo*_*nko 6

PostgreSQL支持全文搜索和索引.细节在这里.

它可以使用任意数量的CPU核心.它为每个会话创建单独的流程+一些额外的支持流程.细节在这里.

PostgreSQL没有内置的查询缓存,但是有很多开源实用程序用于此目的.