【发布时间】:2010-09-06 20:18:46
【问题描述】:
我正在使用 Python (Django) 开发一个 Web 应用程序,并且想知道 MySQL 还是 PostgreSQL 在部署到生产环境时更适合。
在一个podcastJoel 中说他在使用 MySQL 时遇到了一些问题,并且数据并不一致。
我想知道是否有人遇到过此类问题。还谈到可以轻松调整的性能?
【问题讨论】:
标签: mysql postgresql
我正在使用 Python (Django) 开发一个 Web 应用程序,并且想知道 MySQL 还是 PostgreSQL 在部署到生产环境时更适合。
在一个podcastJoel 中说他在使用 MySQL 时遇到了一些问题,并且数据并不一致。
我想知道是否有人遇到过此类问题。还谈到可以轻松调整的性能?
【问题讨论】:
标签: mysql postgresql
致未来读者的注意事项:以下文字的最后一次编辑是在 2008 年 8 月。截至本次编辑,这已经是近 11 年前的事了。软件可以在版本之间快速变化,因此在根据以下建议选择 DBMS 之前,请先进行一些研究,看看它是否仍然准确。 在下面查看更新的答案。
更好?
Web 主机更常提供 MySQL。
PostgreSQL 是一个更加成熟的产品。
有this discussion addressing your "better" question
显然,根据this web page,当并发访问级别较低且读多于写时,MySQL 速度很快。另一方面,随着负载和写入/读取比率的增加,它表现出低可扩展性。 PostgreSQL 在低并发级别相对较慢,但随着负载级别的增加可以很好地扩展,同时在并发访问之间提供足够的隔离以避免在高写入/读取比率下的减速。它继续链接到许多性能比较,因为这些东西对条件非常...敏感。
因此,如果您的决定因素是“哪个更快?”那么答案是“这取决于。如果真的很重要,请针对两者测试您的应用程序。”如果你真的非常关心,你可以找两个 DBA(一个专门研究每个数据库的人),让他们调整数据库中的垃圾,然后选择。令人惊讶的是,优秀 DBA 的成本如此之高。 它们物有所值。
重要的时候。
它可能不会,所以只需选择您喜欢的数据库并使用它;更好的性能可以通过更多的 RAM 和 CPU、更合适的数据库设计、巧妙的存储过程技巧等等来获得——所有这些对于 random-website-X 来说都比选择 MySQL 或 PostgreSQL 更便宜、更容易,以及来自昂贵 DBA 的专家调优。
count 的行数。轶事的复数不是数据。 He said:
在我的职业生涯中,MySQL 是我编写过的唯一一个存在数据完整性问题的数据库,您在其中进行查询并得到无意义的答案,这是不正确的。
他还说:
这只是一个轶事。这就是让我感到沮丧的事情之一,实际上,关于博客或一般的互联网。 ...
【讨论】:
几个月后才响起。
两个数据库的地理功能非常非常不同。 PostgreSQL 具有特殊的 PostGIS 扩展。相比之下,MySQL 的地理功能几乎为零。
如果您的网络服务有定位组件,请选择 PostgreSQL。
【讨论】:
我没有用过 Django,但是我用过 MySQL 和 PostgreSQL。如果您将数据库仅用作 Django 的后端,那没关系,因为它将抽象出大部分差异。 PostgreSQL 的可扩展性更强一些,因为它不会像 MySQL 那样随着数据大小/客户端数量的增加而快速突破。
真正的区别在于如果您正在开发一个新系统。然后我会推荐 PostgreSQL,因为它有更多的特性可以让你的 DB 层更加可定制,这样你就可以根据你可能有的任何要求对其进行微调。
【讨论】:
虽然有点过时,但值得一读MySQL Gotchas 页面。据我所知,其中列出的许多项目仍然是真实的。
我使用 PostgreSQL。
【讨论】:
我都广泛使用。我对特定项目的选择归结为:
特制酱料我的意思是:
【讨论】:
好吧,我认为您不应该在过去的任何开发(构建、暂存、生产)中使用不同的数据库品牌,因为那样会反过来影响您。
根据我的理解,PostgreSQL 是一个更“正确”的数据库实现,而 mySQl 不太正确(不太合规)但速度更快。
因此,如果您正在编写一个 CRUD 应用程序,那么 mySQL 就是您要走的路。如果您需要数据库中的某些功能(如果您不确定则不需要),那么您可能需要研究 postgreSQL。
【讨论】:
如果您正在编写一个可能在不同服务器上分布相当多的应用程序,由于可移植性,MySQL 比 PostgreSQL 具有很大的权重。在不太令人满意的网络主机上很难找到 PostgreSQL,尽管有一些。在大多数方面,PostgreSQL 都比 MySQL 慢,尤其是在最后进行微调时。总而言之,我会说在短时间内给 PostgreSQL 一个机会,这样你就不会完全避免它,然后再做出判断。
【讨论】:
谢谢。我已经将 Django 与 MySQL 一起使用,这很好。根据您需要的功能选择您的数据库。很难比较 MySQL 和 Postgres。最好将 Postgress 与 SQL Server 进行比较。
【讨论】:
【讨论】:
MySQL 是 relational database management system,而 PostgreSQL 是 object-relational database management system。 PostgreSQL 非常适合 C++ 或 Java 开发人员,因为它让我们可以更好地控制查询的编写方式。 ORDBMS 还为我们提供了对象和用户定义类型。 SQL 查询本身比 MySQL 更接近 ISO 标准。
您需要 ORDBMS 还是 RDBMS?这将更好地回答你的问题。
【讨论】: