PostgreSQL或mySQL最适合日常日志网站?

时间:2012-01-05 19:18:37

标签: mysql postgresql

我知道这两个数据库对于不同的场景都更好,但是对于用户将登录并将数值数据输入日常日志的网站而言,哪一个最适合使用?我读到mySQL开始的速度更快,但如果网站开始吸引大量用户,PostgreSQL的可扩展性会更高吗?

缺点是我的主机只提供mySQL,所以要使用postgreSQL我必须购买更昂贵的VPS主机。我也读过人们建议人们不要担心它的开头,但是如果我后来转移到postgreSQL,我会不得不重写查询和表单?我很感激大家对此的看法。

我不明白为什么当我明确表示我来自金融背景并且仅在3周前开始学习时,人们给这个问题留下了负面痕迹。我想你需要记住,每个人都必须从某个地方开始,而且我们多年来一直没有把这当作一份工作/爱好。我很乐意看到你们中的一些人走出你们的舒适区,来到我的工作一天,因为你们同样无能为力,我可以保证我不会像你们这些人一样这么粗鲁。你应该努力创造一个学习和创新的环境,而不是一个傲慢的环境。如果每个人都知道一切,那么本网站的重点是什么?

3 个答案:

答案 0 :(得分:3)

免责声明:我使用PostgreSQL比使用MySQL

更多

从性能/可伸缩性的角度来看,两者可能几乎相同。 Postgres有更好的工作负载以及MySQL更好的工作负载。除非你在你的环境中测试它,否则很难分辨出哪一个对你更有效。

Postgres似乎(似乎?)在具有大量并发写入的工作负载中更快,而MySQL似乎更好用于繁重的只读工作负载。但是那些基准测试现在已经有3到4年的历史了,所以它们可能不再适用 - 特别是因为MySQL 5.5中的InnoDB在该领域有了很大的改进。

然而,PostgreSQL的SQL功能远比MySQL更先进,而且MySQL倾向于默默地忽略你告诉它要做的事情 - 特别是在默认安装中(如果依赖于创建的外键可能非常不愉快的惊喜)。据我所知,MySQL在集群方面仍然具有优势。

在高可用性解决方案方面,它们是平等的。

我非常不同意应该避免任何DBMS特定功能的观点 - 利用DBMS的所有功能将使您的应用程序更具可扩展性并将提高性能。

传统上MySQL并不以releases的稳定性和质量着称,但自甲骨文接管以来,这似乎有所改善。

我仍然不喜欢MySQL的发布政策,他们在次要版本中引入了重大变更和功能。 PostgreSQL开发团队对于次要版本的内容有更严格的政策。升级次要版本(即错误修复版本)在PostgreSQL中比在MySQL中更加“危险”。

曾经有人说PG开发和MySQL之间的巨大差异是:Postgres团队首先确保您的数据是安全的,然后确保一切正常,然后才能让它变得快速。 MySQL团队首先让它快速,然后纠正并最终稳定。但自Oracle收购以来,这也可能已经发生了变化。

我个人总是更喜欢PostgreSQL而不是MySQL,因为它有更好的SQL功能集和产品的整体质量。

答案 1 :(得分:1)

MySQL是比较流行的解决方案,非常大的公司用于非常大的数据库,因此MySQL远非不可扩展。

如果您希望能够在以后在两个数据库之间移动,以防您决定切换,我建议使用ORM(查看http://www.doctrine-project.org/);通过这种方式,您只需编写一次查询,如果您在路上更改为其他数据库,则只需更改配置变量即可。 Doctrine还可以在YAML文件中构建数据库结构,它也可以为您转换。 它还能够在数据库类型之间进行迁移。

您还需要考虑不同的MySQL引擎,它们的表现也不同。我只是在看PostgreSQL和MySQL之间的比较,在结论中,他们不喜欢MySQL不是用事务构建的事实,但是,InnoDB确实提供了对MySQL的事务支持以及某些方面的速度和内存改进。例。

所以最重要的是:如果您可以使用任何一种数据库(如上所述)来创建应用程序,请针对您的应用程序和数据库运行自己的基准测试,看看它有什么不同之处给你。

如果您有预算,那么肯定会有其他事情需要考虑,而且DBA特定于您正在使用的数据库,并让他们对其进行优化。

答案 2 :(得分:0)

首先,SQL是SQL,请确保使用严格的SQL,然后不要重写任何东西。两个dbs之间的差异是SQL支持的级别。 PosgreSQL有更好的支持,但MySQL的支持取决于使用的存储引擎。

是的,您可以使用PostgeSQL更好地扩展您的应用程序,但您的服务器上有多少马赫负载?每天1GB,更少?