简单的问题——对于2012年要求与ACID兼容的中/大型数据库来说,什么更好.

我已经读过关于mySQL和pgSQL的所有文章(大部分都读过),但这些文章中的大多数分别与版本4、5.1和7、8有关,而且都非常过时(20082009).现在快到2012年了,所以我想我们可以try 重新审视这个问题.

基本上,我想知道PostgreSQL中是否有任何东西比MySQL的易用性、可用性和更大的开发人员/知识库更重要.

MySQL的查询优化器仍然愚蠢吗?对于非常复杂的查询,它仍然非常慢吗?

打我!:)

另外,不要把我送到goggle或wiki上.我在寻找一些具体的观点,而不是一个概述+我更相信StackOverflow,而不是一些"聪明人"发光的随机页面.

Addendum

Size of the project:假设一个订购系统,每个帐户每天大约有10-Size of the project个订单,几千个帐户,最终每个帐户可以有几百到几千个用户.

Better at:在不断增长和变化的需求方面,具有前瞻性和灵活性.性能对于保持硬件部门的低成本也很重要.此外,熟练劳动力的可用性也是一个因素.

OLTP or OLAP:OLTP

推荐答案

MySQL的查询优化器仍然愚蠢吗?还是超慢

All个查询优化器有时很愚蠢.PostgreSQL在大多数情况下都不那么愚蠢.PostgreSQL最近的一些SQL功能(窗口函数、带查询的递归函数等)非常强大,但如果你有一个哑ORM,它们可能无法使用.

项目规模:假设一个订购系统大约有10-100台

听起来没那么大——离一个大盒子很近.

更擅长于:在成长过程中做到经得起future 考验,灵活应变

PostgreSQL拥有强大的开发团队,拥有一个由贡献者组成的扩展社区.Release policy是严格的,只有在point版本中进行了错误修复.始终跟踪9.1的最新版本.x用于错误修复.

MySQL过go 对版本号的态度比较宽松.这可能会随着甲骨文的掌权而改变.我不熟悉各种福克斯的政策.

性能对于保持硬件部门的低成本也很重要.

如果硬件成为如此规模的项目的主要组成部分,我会感到惊讶.

此外,熟练劳动力的可用性也是一个因素.

这是你的关键决定者.如果你有一个经验丰富的Perl+PostgreSQL黑客团队无所事事,那就用这个吧.如果你的人知道Lisp和MySQL,那么就使用它.

OLTP或OLAP:OLTP

PostgreSQL在OLTP方面一直很强大.

我个人的观点是,PostgreSQL邮件列表中充满了礼貌、乐于助人、知识渊博的人.您可以直接与拥有TB数据库的用户以及构建代码主要部分的黑客联系.支持的质量非常好.

Mysql相关问答推荐

根据上一行S列结果计算列的查询

S在我的SQL代码中的外键出了什么问题?

MySQL有没有办法直接从CSV文件中读取而不是导入它?

MySQL全文索引和不区分大小写搜索带来的挑战

计算男生的人数和女生的人数.学生是有入学记录的人

从 NextJS/Prisma 添加用户 ID (FK) 到 MySQL 表

使用Workbench时如何添加mysqldump配置标志

多列分组并进行求和

如何根据购买的商品数量查找 unique_ids 的数量

将 Go var 传递给 MySQL - try 在 Go lang 程序 (MySQL db) 中执行 db.Exec 时出错

MySQL DISTINCT 日期仅返回特定表的 1 个值.相同的查询适用于其他表

在 SQL 中的 case 语句之后将新列转换为 INT

在一个 SQL 查询中对同一列中相同类型的不同值求和

了解 SQL 中的元组语法

用序列号mysql更新列

MySQL触发器在某些条件下防止INSERT

MySQL嵌套 Select 查询?

在 Mac 上设置 Laravel php artisan migrate 错误:没有这样的文件或目录

如何将数组存储到mysql中?

匹配 IN 子句中的所有值