对于初学者来说,MySQL和PostgreSQL之间存在很大差异

时间:2010-10-30 16:14:28

标签: mysql database postgresql

对于像我这样的初学者,使用基本的select语句等,MySQL和PostgreSQL之间存在很大差异,还是与使用更高级的查询有主要区别?

6 个答案:

答案 0 :(得分:45)

我之前通常在MySQL之前建议PostgreSQL的原因是因为MySQL远远不符合标准(SQL-wise)。它不支持使用窗口函数(8.4版本),常用表格表达式(8.4), CHECK约束,EXCEPT / MINUS运算符,甚至FULL OUTER JOIN ...即使您可能从未听过在这些词中,你必须在某些时候使用这些概念。

我强烈建议您从PostgreSQL开始,然后您可以了解“真正的”SQL是什么。然后,您可以决定MySQL是否足够。

P.S。我从MySQL开始,我后悔了。我现在使用PostgreSQL,我喜欢它。

答案 1 :(得分:22)

已经有很多支持PostgreSQL的好点,但我还要再增加1个:

PostgreSQL拥有我使用过的任何数据库产品the best documentation

这就是文档突出的原因:

  • 它实际上教你SQL的基础知识
  • 很容易理解
  • 它有很好的例子
  • 组织得很好
  • 这不仅仅是一个带技术说明的功能列表
  • 一切都好,写得很好

其他供应商应该为他们的尝试感到羞耻,并作为文档传递。

答案 2 :(得分:7)

当你刚刚开始时,我认为你会比我为MySQL尝试的那些更加欣赏PostgreSQL的pgadminIII GUI工具。然而,这可能只是我的偏好。

当你超越基础时,你肯定希望从版本8.4开始利用PostgreSQL对window functions的支持

我实际上推荐使用PostgreSQL而不是MySQL来单独使用窗口函数。请注意,有一些方法可以在MySQL中模拟窗口函数。

答案 3 :(得分:5)

你经常听到PostgreSQL爱好者认为它是一个“真正的”RDBMS,而MySQL则不是。这种势利对于新移民来说是危险的,因为它是经过多年的特定经历而发生的,这种经历对某种人格类型有某种影响。如果你想要了解哪些知识最有利于初学者 - 你更有可能找到人们在野外使用MySQL而不是PostgreSQL。围绕开源软件构建的大型网站大量选择MySQL而不是PostgreSQL。

就个人而言,我喜欢MySQL,因为它符合我的开发风格 - 它只是完成了一些事情。我不使用外键。我肯定不使用存储过程。但是MySQL做得很好,它做得很好而且它做得很快而且做到了这一点同时给了我一个快乐的“好吧,这是有道理的”感觉我没有用PostgreSQL(我已广泛使用)。有很好的社区支持MySQL和优秀的文档。如果你需要复制(谁不复制?)MySQL是明显的赢家,没有问题。

如果你切换到容忍度较低的数据库,那么MySQL允许你做的一些事情可能会导致坏习惯。但事情就是这样 - 所有这些都是关于你需要如何准备从RDBMS X跳到RDBMS Y的时刻。根据我的经验,这很少发生,当它发生时,从一个数据库到下一个数据库总是存在奇怪的差异。 MySQL与PostgreSQL有所不同,PostgreSQL与Oracle不同,后者与SQL Server不同,后者与sqlite等不同。我已经使用了上面列出的所有dbs,但我继续使用它, MySQL是最容易和灵活地完成工作的一个。

DBA喜欢以与编程语言爱好者喜欢抨击PHP相同的方式放下My​​SQL - 然而他们却生存并茁壮成长。这是有原因的 - 他们只是工作,他们只是做完了。但是在一天结束时,你应该玩弄所有这些并自己决定。

答案 4 :(得分:4)

我建议初学者使用PostgreSQL,因为它比MySQL少得多。

以下是人们遇到的一些问题:

与此同时,PostgreSQL完全按照您的预期在大多数情况下执行,并且在出现意外情况时通常有很好的理由。

答案 5 :(得分:3)

PostgreSQL支持更高级的查询,它在复杂的查询上表现更好,但更难管理。

MySQL速度快,易于管理,但您可能会遇到高级查询,存储过程等的限制。

它们非常相似,我建议从MySQL开始,但也要学习PostgreSQL。