当前位置:  开发笔记 > 编程语言 > 正文

MySQL与PostgreSQL的Web应用程序

如何解决《MySQL与PostgreSQL的Web应用程序》经验,为你挑选了6个好方法。

我正在使用Python(Django)开发一个Web应用程序,并且想知道在部署生产时MySQL或PostgreSQL是否更适合.

在一个播客中, Joel说他在使用MySQL方面存在一些问题并且数据不一致.

我想知道是否有人有这样的问题.还有可以轻松调整的性能?



1> Josh..:

给未来读者的一个注释:下面的文字最后一次是在2008年8月编辑的.那是近5年前的编辑.软件可以在不同版本之间快速变化,因此在根据以下建议选择DBMS之前,请先进行一些研究,看看它是否仍然准确.


更好?

MySQL通常由Web主机提供.

PostgreSQL是一个更成熟的产品.

有此讨论解决您的"更好"的问题

显然,根据这个网页,当并发访问级别较低时,以及当读取数量多于写入数量时,MySQL速度很快.另一方面,它随着负载和写/读比的增加而表现出低可扩展性.PostgreSQL在低并发级别时相对较慢,但随着负载级别的增加而很好地扩展,同时在并发访问之间提供足够的隔离以避免在高写入/读取比率下的速度减慢.它继续链接到许多性能比较,因为这些事情对条件非常敏感.

因此,如果您的决策因素是" 哪个更快? "那么答案是"它取决于. 如果它真的很重要,请根据两者测试您的应用程序. "如果您真的非常关心,那么您将获得两个DBA(一个专业化的人)在每个数据库中)并让他们调整数据库中的垃圾,然后选择.令人惊讶的是,优秀的 DBA是多么昂贵; 和他们是值得每一分钱.

什么时候重要.

它可能没有,所以只需选择你喜欢的数据库,然后选择它; 更好的性能可以用更多的内存和CPU来购买,更合适的数据库设计,以及巧妙的存储过程技巧等等 - 所有这些对于随机网站X来说比在选择,MySQL或PostgreSQL更痛苦和更容易来自昂贵的DBA的专家调优.


乔尔还在那个播客中说,评论会回来咬他,因为人们会说MySQL是一块废话 - 乔尔无法count回到原点.轶事的复数不是数据. 他说:

MySQL是我职业生涯中唯一一个遇到数据完整性问题的数据库,你在那里进行查询而你得到的是无意义的答案,这是不正确的.

他还说:

这只是一个轶事.实际上,这是令我感到沮丧的事情之一,关于博客或一般的互联网.[...]只有一种奇怪的倾向,才能将轶事变成真理,而我实际上作为一名博主,我开始对此感到有点内疚


也值得注意.MySQL由Oracle拥有*.因此,不允许与其付费产品竞争.
另一点是,如果您使用框架,您可以从数据库中抽象出代码,这样您就可以轻松切换.

2> jeje..:

有人说MySQL简单快捷.

快 - 好吧如果你使用默认的MyIsam存储引擎,它很快.它几乎没有严重的数据库功能,但速度很快.如果我是讽刺的话,我会说平面文件上的grep也很快.有趣的是,它与MyIsam存储数据的方式并不相差甚远.所以不要指望任何关系数据库功能.甚至不参考完整性约束.

简单 - 现在假设您想要一个真实数据库功能的公平子集.一些东西,如完整性约束,触发器,事务隔离,功能索引可能?所以显然你必须让MyIsam引擎离开,并从其他三个主要存储引擎中选择一个.谁是由不同供应商开发的,每个供应商都有特定的配置/行为.

查看存储引擎的概述,如果您没有头疼,我同意MySql从您的角度来看很简单.

从这些事实来看,我会让你想到那些说MySql快速而简单的人.

如果你想扩展更多,节省时间,寻找更少的奇怪错误,拥有更简单的应用程序代码,花更多时间优化业务,而不是与数据库作斗争,那么选择的开源解决方案是Postgresql.



3> Grey Panther..:

我没有使用过Django,但我使用过MySQL和PostgreSQL.如果你只将你的数据库用作Django的后端,那么这并不重要,因为它将抽象掉大多数差异.PostgreSQL的可扩展性稍高一些(与数据大小/客户端数量增加相比,它不像MySQL那样快.

如果你正在做一个新的系统,真正的区别在于.然后我推荐PostgreSQL,因为它有更多的功能,使你的数据库层更加可定制,以便你可以根据你可能的任何要求进行微调.



4> Summer..:

几个月后才开始吵闹.

这两个数据库的地理能力非常不同.PostgreSQL具有卓越的PostGIS扩展.相比之下,MySQL的地理功能几乎为零.

如果您的Web服务具有位置组件,请选择PostgreSQL.



5> Greg Hewgill..:

虽然它有点过时,但值得阅读MySQL Gotchas页面.据我所知,那里列出的许多物品仍然是真实的.

我使用PostgreSQL.



6> Lance Rushin..:

我广泛使用.我对特定项目的选择归结为:

许可 - 您打算分发您的应用程序(IANAL)

现有基础设施和知识库

你必须有任何特殊的酱汁.

通过特殊酱我喜欢:

简单/便宜的复制= MySQL

小结果的巨大数据集问题= PostgreSQL.使用语言扩展,并具有非常有效的数据操作.(PL/Python,PL/TCL,PL/Perl等)

与R统计库的接口= debian/ubuntu中提供的 PostgreSQL PL/R.


PostgreSQL 9.0+具有内置的二进制WAL复制,非常容易设置.
Postgres也有简单/便宜的复制.它不是*内置*,因为有六个可供选择,每个都有自己的好的和坏的部分.因此,您可以为MySQL选择*one*mediocre复制,或者为PostgreSQL选择其中一个复制.你的选择.
推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有