MySQL和PostgreSQL的普及怎么办?米塔普讨论

4月24日,我们主持了有关MySQL可伸缩性问题MySQL @ Scale在线mitap 来自Avito,Badoo和ECOMMPAY的发言人参加了会议:Andrey Aksenov(Sphinx的作者,搜索基础结构的负责人),Evgeny Kuzovlev(CIO ECOMMPAY),Vladimir Fedorkov(ECOMMPAY的MySQL专家/ DBA)和Nikolai Korolev(Badoo的MySQL专家/ DBA)。

Mitap发行很长一段时间,因此我们决定将其分部分发布,并从头开始-我们对MySQL和PostgreSQL的普及,PostgreSQL,ORM普及,阻抗不匹配,分形指数,愤怒,拒绝,讨价还价和设置自动真空的原因进行了非常有趣的讨论。以及由NodeJS的留言簿开发人员选择DBMS的其他问题。注意!没有严格审查的词汇,许多不正确的概括已被替换,任何巧合都是随机的,绝不是冒犯性的。

Alexey Rybak:以MySQL和PostgreSQL为例,不只是一个holivar,而是一个相当可测量和可见的东西。有分析,我不仅关注一种指标。现在我想起了两件事。我们有一个Facebook小组,负责管理和开发大型项目。有几千人。我对PostgreSQL或MySQL进行了一次民意测验,其中包括谁是云,非云使用者,因为这也是一个新话题,在过去几年中非常热门。

事实证明,Postgres(略)领先于MySQL,对我而言,这基本上是一种新故事,因为似乎比例应该有所不同。在HighLoad会议上进行的民意测验已经发布。我没有逐年进行直接的系统比较,但是它清楚地表明,在某种程度上,Postgres在回答“什么是您的主要数据库”这个问题的答案数量上已经赶上并超越了MySQL。

我与Petya Zaitsev进行了交谈。很久以前,也许是两年前,他来到莫斯科。这基本上就是Petya的全部想法。这样的想法是,首先,已经做了很多工作来介绍云历史中的各种管理解决方案或运营商。从某种意义上说,选择MySQL或Postgres之间的最初差距似乎已经拉平了,这是因为,如果对于MySQL来说,一切都比较简单,它花了并且奏效了,那么Postgres必须先与铃鼓跳舞很多,这样这东西才能al愈。在云环境中,您将拥有一些东西:单击一个按钮-一切都出现了。也就是说,一方面,这一差距被消除了。然后,就许可而言,某种专有的而非专有的,诸如此类的某种普遍观念也会受到影响。粗略地说,如果您完全简化它,如果我不在乎只用一个按钮,那么我会选择更自由的东西,或者他们说它是免费的。实际上,目前还不清楚,但是。什么包装在意识形态上更正确的盒子中。这是一个故事。

第二个故事是它专门针对俄罗斯,因为我所依赖的数据毕竟不是世界,而是俄罗斯,也许世界上的故事有所不同。有这样一个故事,后国会议员在某个时候团结一致,并开始非常公关。他们创建了工作组和会议,并且几年来,已经有一家公司真正为俄罗斯提供企业解决方案。

首先,您认为在俄罗斯乃至全世界,MySQL和Postgres之间的这种重新平衡是什么?如果是,原因是什么,我指出的原因中有多少是合理的,合理的,也许还有其他原因原因?

叶夫根尼·库佐夫列夫(Evgeny Kuzovlev):老实说,我从来没有想过云似乎可以消除所有差异,这可能是因为我拥有的一切都在内部。对我来说,云就是在亚马逊上说的东西,让我们快速填充它,然后对我来说就是云。因此,从这一方面来说,我从不考虑。但实际上,这里的复杂性降低了。

为了让Postgres专为您工作,大约有条件的早些时候(大约八年前),有必要用铃鼓跳舞那么多,而现在,母亲对此并不感到悲伤。然后您将MySQL开箱即用,它为您工作。也许不是八年,也许是10到12年前。确实,Postgres中的这种复杂性已经大大降低了,并且这种输入的重点是可操作性和开发性,并以某种方式与MySQL进行了比较。

但是,例如,对于我自己,我们解决了这样一个问题,我尝试着去解决,并且我尝试着尽可能远地去解决。启动DWH时,我们需要为非规范化表选择引擎。同时,这里没有分析,分析水平略有不同。它只是纯存储空间。需要一个革命性的DBMS来分别提供数据比较分析。

并且我们向MySQL或Postgres提出了这个问题,尽管事实上操作资源非常合格,但我们还是选择了。例如,我给人的印象是,他是Postgres的学者。就像教科书中所写的那样,它将起作用。而MySQL,它在某种程度上相当轻巧,并且有很多技巧。但同时,这些骇客在99%的情况下仍然有效。无论有多少Postgres专家给出综合基准,在实际情况下(涵盖了实际使用的99%的数据库),MySQL都能胜过普通用户。

而且,该死的好处是,它只是MySQL的一大优点,它没有自动真空。因为在Postgres中设置了此功能,所以并不是每个人都可以。以及使用者...

弗拉基米尔·费多尔科夫Vladimir Fedorkov):听起来很(关于工程师-大约AR)。

叶夫根尼·库佐夫列夫(Evgeny Kuzovlev):一旦用户遇到自动真空,他们就会开始遇到最棘手的问题。就是那样,要使系统降级60%,这是为您自己,这是……

Alexei Rybak:不,我只是进入了王牌。

Evgeny Kuzovlev:不好意思。立即摆放在桌子上。但是,我当然知道我们有Postgres。我们有很多。我们有自动抽气的问题,感谢上帝,不。但是在我的职业生涯中,我经历了所有这些情况-愤怒,否定,讨价还价和调整自动真空。但是,我会告诉你,这是一种痛苦的感觉。 MySQL不会造成太多麻烦。

同时,我非常生气,因为在MySQL中我没有机会……我想要,但是,这里有一个B树索引,仅此而已。即使你破解!我不知道,我不能仅仅建立...

Alexey Rybak:有哈希索引。

Evgeny Kuzovlev:是的。但是,让我们比较一下MySQL中的索引数量和Postgres中的索引数量。这是无与伦比的。同时,关于表引擎也可以这样说。在MySQL,我们有一个表引擎,您想要(不知道),去买一些TokuDB,您会在百分之一的案例中以及在百分之九十九的案例中不理解为什么要这么做……

Andrey Aksyonov:用分形涂抹。

阿列克谢·雷巴克(Alexey Rybak):好吧,等等,对于引擎,这也是一个骗局。以前,当它被发明时,这似乎很酷。但是实际上,什么都没有扎根。

Andrey Aksyonov:为什么没有扎根? InnoDB已扎根。

Alexey Rybak:不,我是说,除了InnoDB。也就是说,InnoDB只是一种标准。其他所有带有专栏文章的故事,还有一些更具体的文章,例如Toku。没错,我什至不知道这个百分比在哪里。也就是说,引擎真是太可疑了。

叶夫根尼·库佐夫列夫(Evgeny Kuzovlev):您知道,人类心理学认为,有时候选择的可能性比选择本身更重要。 MySQL给了它。

Alexei Rybak:人们不选择MySQL反对Postgres,因为存在不同的引擎。我认为这是最后一个...

弗拉基米尔·费多尔科夫(Vladimir Fedorkov):因为当人们选择MySQL与Postgres对抗时,如果公司中至少有某个人支持Postgres,那么会选择他是因为这是一种宗教。

Alexey Rybak: MySQL也是一种宗教。

弗拉基米尔·费多尔科夫(Vladimir Fedorkov):不,绝不。

安德烈·阿克索诺夫(Andrey Aksyonov):没有人再提出一个重要的观点,即“偶然性已增长”。需求自然在某一层增长了。最初的问题是,为什么Postgres的百分比在增长,这种惨叫MySQL的假货的百分比却在稳步下降,当然,最后,原则上说,行星是相同的,恐龙会践踏,MongoDB会击败所有人,但是在将来,但是webscale仍然很重要,因为应用程序提出的要求会随着时间的推移而变化-一次,一次Postgres就其本身而言已经成熟了,而开发人员的一些需求也就此成熟了

。Alexei Rybak:听着,我不相信,请原谅。告诉我,让我们具体地...

Andrey Aksyonov:具体来说,你看,1995年……

Alexey Rybak:最初推出针对相同产品而设计的webscale产品的公司...天哪,让我发疯了!刚刚被称为...现在,这是谁将击败所有人...

Andrey Aksyonov: Mongo将获胜。

Alexey Rybak: Mongo,是的,是的,是的,对不起,是的。因此,Mongo最初有两件事。首先,对象存储,不要认为,简而言之,ORM只是写,保存并且不需要任何东西,SQL不需要知道,总之,仅此而已。这导致了一些帅哥,他们的要求没有改变,他们很简单:是的,但是有可能,SQL不能被教授,哇!挺酷的!他只是说:保存对象,然后就把我留在某个地方,上课!这是第一个。

其次是什么?不用考虑容错功能,我们最初可以在多个DC中做到这一点,依此类推。起初是胡说八道。然后他们扭曲了一些东西,并且就我所知,原则上,在最新版本中现在可以运行)在很多大型安装中确实使用了Mongo。

我的意思是,这是一个很好的例子,当您进入另一个市场时,已经感受到了这两种可能性,首先,在对象语言编程范例中成长的人们通常会遇到这种阻抗不匹配的情况,这是一个基本的故事。对于他们来说,使用这样的工具会更容易:“救救我”,我会为您做一切。同时,开箱即用的东西是与队列相关的东西,还有其他东西。
在这里,我会理解,尽管我再说一遍,但是您将巨魔当作一种双曲线的,相对来说是案例的小说。不过,他确实在这种情况下说,您可以使用这种产品,找到这种利基市场,然后他会飞起来,践踏,炸毁。根据您的逻辑,我不了解Postgres的建议或建议,更改方式以及对Postgres的要求突然变得如此吸引人。

Andrey Aksyonov:我再重复一遍。两侧芽菜;一方面,Postgres使用某些参数,另一方面,开发人员使用某些参数。再一次是1995年。您是开发人员。您坐在B ...(Atyrau)上,赚了15美元,这是一年。然后你写c *****(一文不值)在Perl中的留言簿。然后启动选择过程-选择哪个数据库。令人惊讶的是,MySQL和Postgres已经存在。如果不是,那么它们将在1996年出现。但是,您s *** (犬科女性),是B上Perl的留言簿的开发者……(Syzran)!您有如此艰巨的任务,可以解决。

您能想到的唯一基准是每秒将吸收多少“每圈”请求。而这时每秒的“请求数量”则Postgres减少了四倍半。就这样,只是因为f ***你。之后,您会看到:好吧,是的,但是在Postgres事务和MySQL 3.23 MyISAM中。但是说实话,我的留言簿交易对我来说是**** (根本)并不需要。强烈选择MySQL。

现在已经过去了25年。原则上,您仍然生活在B ...(Tuymazy)中,您不再使用Perl写作,但是在NodeJS中,您的薪水已编制索引,因为这只是美元通胀,现在是15美元,乘以通胀,-45,这是一个月。您有同样的问题,还有NodeJS中的100,500个软件包。这些100500个NodeJS软件包需要将它们的整个状态存储在某个地方,有关软件包管理器的复杂请求等。

然后突然间,您对数据库的需求有了一点增长。例如,由于某种原因,您将无法生活,也不想没有交易就生活。多么惊人的巧合!您仍然需要加入。这是一些开始考虑的奇怪索引,而不仅仅是自动B树,例如:哦,该死!但是最好有一个地理索引,一些R树,或者说,上帝救了我们分形树。

这改变了开发人员的要求集。另一方面,Postgres,在古人的年代,自然就简单地以简单的“圆圈”来减速(请求),这是每个人都愚蠢且需要的东西,在过去的短短25年中,他的工作取得了很大的进步。因此,他们突然见面了,越来越多的人惊讶地发现,op!你看!但是事实证明,Postgres还不错!而且对于我的要求来说更好一些。我的假设完全是这样,大致来说,是在MySQL的开始...

Alexey Rybak:听着,但我不知道哪里有更好的选择?什么是更好的?我了解他们在某些方面是平等的,但是更好的是,我不了解。

Andrey Aksyonov:所以他们俩都更糟。

Alexey Rybak:比Mongo吗?

安德烈·阿克索诺夫(Andrey Aksyonov):当然,用引号引起来的是“ Mongo”。但这是一个单独对话的主题,也是一个单独对话对话线程,称为“美好的未来在哪里”。

弗拉基米尔·费多尔科夫(Vladimir Fedorkov):没有光明的未来。数据库是邪恶的。选择数据库后,您将自己签署死刑。不要使用数据库。写文件。

Alexey Rybak: / dev / null!写到/ dev / null,朋友,dev / null是网络规模。

Andrey Aksyonov:是的。好吧,好的,原则上您也可以碰到/ dev / null,我们可以。

Alexey Rybak:好的,朋友。每个人都可能很累。我们已经聊了两个多小时。

安德烈·阿克索诺夫(Andrey Aksyonov):但是还没有提出真正有趣的问题。

尼古拉·科罗列夫(Nikolay Korolev):刚刚开始。

Alexey Rybak:认真吗?你要继续吗?

Andrey Aksyonov:我也没有倒威士忌。

阿列克谢·赖巴克(Alexey Rybak):但是,这是一个很大的问题,为什么您不这样做。

安德烈·

阿克索诺夫(Andrei Aksyonov):我当然没有准备…… 弗拉基米尔·费多尔科夫(Vladimir Fedorkov):所以他们说广播,广播,没有什么是不可能的,你不能发誓,你不能丰满。

Alexey Rybak:啊!朋友们!观看广播的每个人都非常感谢您与我们在一起。我们开始非官方的部分,它在哪里关闭...现在...我删除了实时流。非常感谢大家,也感谢我们的客人-弗拉基米尔,安德烈,尤金,尼古拉。滚开,再见,待会见。

(记录结束)

mitap的完整记录可以在youtube上查看:



在不久的将来,我们还将发布有关基础架构,扩展/容错模式以及MySQL生态系统状态的其他部分。

如果您喜欢这种格式,那么在本周五将有另一场专门针对容器基础设施的集会,但仍有机会。参与者:Evgeny Potapov(ITSumma的首席执行官),Dmitry Stolyarov(CTO Flant),Denis Remchukov(又名Eric Oldmann,COO argotech.io,前俄罗斯RAO UES),Andrey Fedorovsky(CTO News360.com)和伊万·克鲁格洛夫(系统工程师,前-Booking.com)。让我们谈谈现代基础架构中容器和Kubernetes的工具,问题和前景。

我们还提到了Facebook组“大型IT项目的管理和开发”@ feedmeto频道以及来自公司(主要是外国)技术博客的有趣出版物,以及作者关于食品公司发展管理@rybakalexey频道

All Articles