社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

MySQL,不要再自以为是了

Python爱好者社区 • 4 年前 • 501 次点击  
文 | 白开水
出品 | OSC开源社区(ID:oschina2013)
前 Oracle 公司首席软件工程师、MySQL 优化器团队成员 Steinar H. Gunderson 在自 Oracle 离职前夕发布了一篇名为《Leaving MySQL》的博客。他在博客中写道,MySQL 是一个相当糟糕的数据库,并强烈建议大家应该考虑使用 Postgres。
Gunderson 还补充称,“不要相信 MariaDB 有多好。Monty 和他的手下离开是因为他们对新的管理方式不满意,而不是因为他们有一天突然醒悟过来,意识到他们在代码中造成了多么大的混乱”。MariaDB 是 MySQL 分支,由 MySQL 的创始人 Michael “Monty” Widenius 所创建;被设计为 MySQL 的直接替代产品。
Gunderson 在博客中描述了自己加入 MySQL 团队时的感受, 表示:

来到 MySQL 就像进入了一个平行宇宙,那里有很多人真正相信 MySQL 是一个最先进的产品。同时,我参加了培训并被告知优化器是如何在内部工作的;我真的需要一些缓冲时间来接受几乎所有的东西都是多么的原始。这感觉很奇怪,但我想你很快就会习惯了。从某种意义上说,这并没有让我感到困扰;很多糟糕的代码意味着有很多改进的机会,而且管理层也非常支持大规模的重构工作。更令人震惊的是那些坚持认为一切都很好的人(似乎大多数 MySQL 用户和开发人员并没有真正地使用过其他数据库);甚至像执行器这样明显疯狂的东西,在那里所有东西都是一个大块、所有东西都与其他东西相互作用,也被称誉为'高效'(其实不然)。

并针对上述言论举例称,譬如因为没有模块化,分类器必须关注它的输入是来自 table scan 还是 range scan。“任何不属于这两种情况的东西(包括连接),都需要很大的调整。在给定的设计中,如果不重写查询,完全的外层连接根本不可能执行(MySQL 仍然不支持它们,但至少现在它没有受到旧的 we-can-do-left-deep-plans-only 设计的阻碍)。甚至不让我着手使用'slice'系统,这也许是我在任何现实世界的软件中见过的最疯狂的设计。”
不过他也表示,还是为自己一直在做的工作感到由衷的自豪;MySQL 8.0 是比 5.7 更好的产品,而且它还将继续改进。但话锋一转,Gunderson 又指出,能做的也只有这么多了。“团队其他人和我一直都在致力于使 MySQL 优化器朝着相当标准的 21 世纪初期设计的方向发展,并有一些不错的调整,但这也是它的终点。”
Gunderson 称,无论 Oracle 公司内部说的有多天花乱坠,他依旧不认为 MySQL 会成为一个有竞争力的产品;并建议那些正在使用 MySQL 人,是时候该看看外面的世界了。
在离开 Oracle 后,Gunderson 已经加入了 Google Chrome 团队。
话说,你觉得哪个数据库更好用呢?评论区等你~

重磅!Python交流群已成立


公众号运营至今,离不开小伙伴们的支持。
为了给小伙伴们提供一个互相交流的技术平台,特地开通了Python交流群。
群里有不少技术大神,不时会分享一些技术要点,更有一些资源收藏爱好者不时分享一些优质的学习资料。(免费,不卖课!)
需要进群的朋友,可长按扫描下方二维码。

▲长按扫码

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/126400