前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB 不是软柿子,想替换就替换

MongoDB 不是软柿子,想替换就替换

作者头像
AustinDatabases
发布2024-05-20 15:08:11
960
发布2024-05-20 15:08:11
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

最近发现一个有意思的事情,不少的文章中都在提出,我们替换了MongoDB 然后从安全性和从开源协议的方面来进行表述其中的成功,最有意思的是英国卫报的那次。实际上,我也查询了相关的文章,我从里面没有找到什么 MongoDB的不是,倒是因为管理者的一些技能的缺失,导致认知的一些误区和对支持管理软件的抱怨。

附带还有一个新鲜的地方,大部分文章都是翻译的,都是国外的,从英国卫报到下面这篇最近的文章的节选的部分。特别想问一句,MongoDB 是软柿子,好捏。

下面是另一篇文章中替换MongoDB的原因,我截图,贴到了这里。

是的这篇文章还是翻译的,反倒是 MongoDB 或者说文档数据库,正在抢夺 RDBMS的一部分市场份额的故事没有人说,为什么要替换。没有办法,因为开发的思维模式,但赤裸裸的胡说八道,哪怕是外国人,也忍无可忍。就有了下面对那篇翻译文章的吐槽。

1 开发的思维模式是对象化的思维模式,方法,类是开发的主要实现业务模块的程序组成方式,SQL对于开发人员就是打破开发人员思维模式的一个恶心的东西,SQL是一种顺序化的思维方式,开发者在开发中的思维模式属于经常要跳出跳入,这就和让CPU 在用户态和内核态频繁的跳入跳出一样,MongoDB 就是让程序人员的思维尽量在用户态工作的一种数据库,更灵活的东西更有助于实现一些大众化的业务。

2 开发考虑性能的思维粒度可以变粗,这也是毫无疑问的,你可能会因为你MySQL中一行中加多了索引而再也加不上去索引而头疼,宽表,表的字段宽度等等束缚,开发人员对于这样的事情,只能用四个字母表达感情,FXXX !!! , 但MongoDB 或文档数据库不会给你这样的束缚,你要写多少,一行16MB 够吗,一行我能存下 上下5000年的文字,这不就妥妥的以对象为思维的一种模式的体现。

3 多少开发人员还在为MySQL的 异步方式只读库的数据何时到从库,伤脑筋,MongoDB 可以让你指定那些数据必须在大多数,或你指定的从节点落盘,或可以呈现在完成事务后才可读,这不灵活吗,这不就把 数据同步读取的选择权给了开发吗?这是以开发人员为本,而不是数据库管理人员为本的最好体现。

4 还有上面文中,胡说八道,强行给MongoDB安上的逻辑,什么没有关系的支持,我来翻译一下他的意思,因为没有二维表格的主外键和级联的关系,所以导致删除数据的时候没有限制,所以不安全,或者诸如此类的陈词滥调。

不用MongoDB 指责你,MySQL 的Fan 就能把说这样话的家伙撕碎,碎碎的,谁给你的勇气在 2024年,倡导主外键级联,用数据库来保证你业务的数据的完全的过程安全性,这是路易十四,还是爱德华十八。自己说开发水平差,非要用这样方式来告诉别人吗 !

5 不过那文章最后一点,算是说对了,不用说使用,了解MongoDB的人太少了,或者说根本就没吃过,熊掌燕窝的人,他就是太少了,因为吃不起,所以提出粉丝和鱼翅一个味道,熊掌和猪肚子一个味道。用过MongoDB的人,绝对不会说出这样的话,替换有何德何能,每秒的写入速度,MongoDB 就能让一众传统数据库,下岗。

所以MongoDB 在国内的宣传力度和被招惹不还手,让不少人都想招惹一下MongoDB ,反正这软柿子才甜。

那么今天咱们看看MongoDB 到底是不是软柿子

1 天然分布式存储,以及分片原生支持,读写分离,你根本不需要考虑什么均衡,或者用中间件,那么糟糕复杂的设计,在MongoDB上不存在。就一点MongoDB可以让开发人员决定你的这个数据再多节点上的一致或是异步数据复制,每一条数据都可以让开发来决定,数据同步的方式,其他的数据库站出来,谁可以 !

2 数据量瞬间的大量的写入,别的数据库承受不了,MongoDB可以,以我亲身的使用 10亿 单表不分片,用的很不错,对10亿行,你哪怕再给我10亿我也不含糊,在单表上。或者内存给足,每秒写入50万只是初级的水平。

3 项目之间的数据承接,如果业务不靠谱,我是真的指望不上什么RDBMS,一会对方加个字段不告诉我了,一会把字段的长度改了,这边数据库也要改变了,在这样的情况下,你有什么指望,MongoDB,我首先要用MongoDB来解决问题,而不是什么 RDBMS 来进行,尤其第三方递送数据,一用一个不知声,可以让你的项目的DBA和开发人员多活几年。尤其那些报文,今天加个字段,明天减个字段,那些银行的面对第三方根本不通知你的那种 !

4 最主要的是,数据的读取的性能,或者数据库的性能,不光DBA 说了算是开发也具有决定权,这里主要的点在于开发怎么设计doucment 的组成方式,可以让你的性能提高或降低。

5 聚合查询,最近我在研究MongoDB的聚合查询,发现一个非常有意思的问题,MongoDB的一些聚合方式,在传统的SQL中无法通过一个SQL来简单的完成,但在MongoDB 里面是可以通过一条命令来进行操作的。

不过换一个角度,运行不出问题,管理方便,架构结实高可用简单,这样的数据库的确让管理者有了 削减DBA的借口,同时因为给了开发太多的自由,降低的工作量,降低了工作的重要程度,那么从这点上,Fxxx MongoDB ! 最后让我敢发这篇文章的另一个原因是,群里来了一位原厂的MongoDB的 老师,所以你懂得!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档