数据库之十二星座 水瓶座

本来今天是想休息一下,看看我喜欢看的“奇葩说”, 和看那些肥皂剧相比,唇枪舌战,脑洞大开才是我 favorite.  本期说的是死亡,听完双方慷慨激昂的PK 后,输赢我到不关心,而生命有限,做自己喜欢的事情,马上做,多做一些,此生无憾。

说道脑洞的问题,让我想到我周围众多的水瓶座的朋友。说到脑洞,没有那个星座的人,比水瓶座的人脑洞开的之大,看问题之清晰,思维之独立,内心之冷静,想法之“怪异”,在热情的外表下,有一颗寒冷的“心”。 提到数据库,Mongo DB 恐怕就是数据库中的 水瓶座,你懂他,他就是你世界,你不懂他那你只能感受“寒冰刺股”。

那你如何去懂他,更好的使用  Mongo DB,让他用独特的数据处理方式来解决那些你平时头疼的问题,让那些可能困扰你的大数据问题,在风淡云轻中被轻描淡写的化解。那我们来看看你如何来更懂他 ----

1  反范式, 提到范式,那是一个数据库人引以为傲的“知识点”,如何将数据库表设计成,符合三范式的要求,曾经成为一个DBA 或者 数据库架构师的一个卖点。 可时代变化的太快,随着数据量以几何数的方式叠加,十几个表的JOIN,才能查出你要的数据,损耗的时间,人们对时间的速度的渴求,这一切让范式变得不再重要,MONGO DB 在使用中第一个要点就是要 破除 范式的思维,如何将那些分散在每个表中的数据,变成一个collection,用冗余的数据来换取高速的查询速度,这是一个用磁盘容量换取时间的 “”脑洞问题“”。  嵌套可以将你了JOIN 彻底的打碎,在一个collection中将你所要的多个表的数据,在一次I/O操作中就能获得,这就是 水瓶座的 “脑洞”, 你或许不理解,但快速的查询速度就在哪里,水瓶也以不屑的寒光,淡然的面对那些老古董的 “固执”。

2 什么数据适合嵌套,这又是一个脑洞的问题,如果你乱用嵌套,将一些数据经常会改变的,数据在每个阶段都要求一致的,属于既要看结果,还要看过程的 leader们,我劝你还是省省吧,比射手座还爱自由的水瓶座,会再一次打破你的束缚,你的MONG DB 的设计可能需要的是, 子文档较小,数据不会经常被改变,最终数据一致即可,数据结果就可以在一个文档中得到,需要快速的读取,如果你能开这样的"脑洞" , 那你的数据的获得将变得异常的 快速。

3 一对多,多对一,多对多,这是数据库中查询经常要面对的问题,传统的子查询,EXISTS,JOIN ,传统的数据库们做着这些普通的不能在普通的工作,而在MONGO DB,这里最大的问题是多对多,而MONGO DB 要处理多对多的问题,其实也有他自己的主张,多对多,中在多也有少和多的比较,用多和少的比较关系,确定那个被嵌套更好,或者数据的变换频繁度,是嵌套好,还是引用好,是一次查询就得到数据还是二次查询获得数据更适合,这完全决定于你的数据,你的业务,这也和水瓶座性格一样,一分钟一个脑洞,你在想出一个脑洞的时候,他可能已经将你的脑洞团团围住。

 

4 自由,与传统的数据库表的定义不一样,MONGODB 的表(collection)也是飘忽不定,脑洞在上一个document 还是“天苍苍”,下一个document 就已经是“清明上河图了”,看似不靠谱,但生活中又有多少靠谱的事情,以包容的,淡然的心去面对那些不靠谱,这不也是水瓶对世间种种的化解。在MONGO DB 的世界里面,不是没有规矩,而是不要太多规矩,为什么要让可以简单的工作复杂化,这是MONGO 对待数据的态度,也是水瓶座对待世间问题的看法。

5 扩展性,不同于传统数据库的分库分表,Sharding 是MONGO DB 支持的,也是一个卖点,不同于MYSQL 分库分表中要不就是死去活来的设计,要不就是各种中间件的使用,造成各种故障和不便,MONGO DB 的 分片,将数据的扩展变得和吃一顿早餐一样简单,当然Shard Key 你要选择的对,就如同你如果早餐吃了咸鸭蛋,然后在上一碗豆腐脑,和一盘咸菜,想想你是要“飞”吗?shard key 让分片有效的将大数据量化解到每台MONGODB ,而选择不好,只能让你“飞”的越来越失控。和水瓶座的随性一样,完全取决于你的态度,如果你态度好,自然是everything is possible, 如果你态度恶劣,迎接你的必将是“Aurora Execution”。

6 快速的存取速度,如同你上一秒还在感叹水瓶座的热情,下一秒就会冻结你一切的幻想,在数据的存储上,同样是存储同样的尺寸的数据,传统的数据库可能还在 “毫秒”中打转,而MONGODB 就能让你领略到“速冻”的感觉,纳秒的速度对数据的存取,当然还是那句话,你的懂他,如果你还是用“老脑筋”让他去做什么聚合之类的“适合传统”的事情,那他一定也不会让你如意。

7 无以伦比的Replicate set , 说道沟通和交流以及人际关系,水瓶座绝对也是有一手的,他能很好的拿捏人与人之间的距离,不同世界观的包容,世界中不少的偏见在他那里都变得很正常,所有的数据库都有replication,集群,等等的功能,而到目前如果说,在异步复制中,做的最好的,我个人认为 MONGO DB 们在和每个节点的切换,在对应用的透明无感的转换,在对读写分离的淡然处之都是别的数据库学不来的,将这些功能交给了developers,或者说交给了developers 一大部分,这不就是对这个世界的包容吗,没有条条框框的处理,才是最好的处理,给人和人之间更多的平静,靠理性而不是感性的生活,这世界或许会更好,至少不会更糟。

MONGODB 作为文档数据库,起家,但我个人浅薄的看法,MONGODB 不会止步于此,或者现在就不,今天我们公司的一个程序员,将复杂的SQL 变量运算,移植到MONGO DB,将嵌套,JAVASCRIPT 语言结合,将复杂的事情变得简单,快速,如果能成功,那MONGO DB 绝对不再是 仅仅存一些不重要的数据,LOG ,重复性的文档,声音,图片,辅助对数据的高压缩。 彻底摆脱传统数据库的束缚,将自由开放坚持到底,给程序员一片更 “蓝” 的天空。这样的水瓶座,你不喜欢吗?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/69217.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于《系统集成项目管理工程师》——建筑与建筑群综合布线工程中常见的术语和符号精华汇总

更多精彩请关注博主 博主主页请点击此处https://blog.csdn.net/qq_38639612?typeblog 关于《系统集成项目管理工程师》 建筑与建筑群综合布线工程中常见的术语和符号汇总 一、常见术语 1、建筑与建筑群综合布线系统 generic cabling system for building and campu…

How to Make Your Writing Stand Out From AI 如何让你的写作从人工智能中脱颖而出

Thanks to amazing tools such as ChatGPT, there is now a flood of well-written, functional, and useful writing to compete with if you’re a human writer. This means your writing needs to differentiate itself from this new breed of content. Here’s how to do…

ChatGPT和AI Art带来的变革,主导2023年的3个重要机器学习思想,理解这些概念可以让你在未来主宰人工智能

机器学习最近非常受欢迎。时刻都在发生如此多的事情,可能很难弄清楚您应该学习哪些想法。当你记得许多流行技术(ChatGPT、AI Art 等)都内置了多种技术和想法时,这会变得更加复杂。对于初学者来说,在没有先验知识的情况下以任何有意义的深度理解这些技术是不可能的。 在阅…

人工智能论文写作

AI领域论文写作 导论0科学研究的基本流程2寻找和总结文献阅读摘要阅读和记笔记框架 3 寻找研究痛点以及研究方向寻找研究痛点寻找研究方向方向1方向2:当前的热点方向方向3:方向4: 4论文写作和绘图工具 一、AI论文中relate work(相关工作)的写…

Input输入字数的限定

在一些应用程序或者网站里,你如果想要 修改名字,你就会发现,修改昵称是有限制的, 比如修改的昵称最少不能小于6个字符,最多 不能超过10个字符,如果少了或者多了就会提 示你说少了多了。这些都是通过限定输入…

OWASP Top 10大漏洞简要介绍

0x00 前言 OWASP(开放式Web应用程序安全项目)的工具、文档、论坛和全球各地分会都是开放的,对所有致力于改进应用程序安全的人士开放,其最具权威的就是“10项最严重的Web 应用程序安全风险列表” ,总结了Web应用程序最…

[ 攻防演练演示篇 ] 利用谷歌 0day 漏洞上线靶机

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

OWASP top 10漏洞详解

一、写在前边 临近毕业,最近在找实习单位,看到好多招聘要求熟悉owasp top 10 安全漏洞,于是在经过一番查资料,终于有了大致的了解,为了加深印象,特意通过博客记录一下,也希望为有同样需求的同学…

多家大企业受GoAnywhere 0day 漏洞攻击影响

聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 越来越多的企业开始证实遭 Fortra 公司 GoAnywhere 文件转移管理 (MFT) 软件0day 漏洞 (CVE-2023-0669) 的攻击。 该漏洞在今年2月初被公开披露,一周后该漏洞的利用和补丁也发布…

JavaEE-网络编程

网络编程 网络模型概述 计算机网络: 计算机网络是指将地理位置不同的计算机及其外部部件,通过通信线路连接起来,在网络编程协议下,实现不同计算机之间的信息共享以及信息交流的计算机系统。 网络编程的目的: 传播…

Python基础必备知识:同步异步阻塞非阻塞!

一、状态介绍 Python资源共享群:484031800 在了解其他概念之前,我们首先要了解进程的几个状态。在程序运行的过程中,由于被操作系统的调度算法控制,程序会进入几个状态:就绪,运行和阻塞。 就绪(Ready)状态…

献给程序员们的诗

作者:年素清 来源:年素清 诗人 & 码农 码农的工作很忙碌,码农的生活很枯燥,码农很苦! 同为忙农的我苦中作乐,为了能够形象地描述出码农的生活工作乃至方方面面,我试着篡改了几首经典古诗词。…

餐饮行业消费市场---顾客满意度调查

一.调查主题: 一只酸奶牛(小寨赛格店)顾客满意度调查 二.调查目的 调查近期到店消费顾客对本店各项服务的满意度,主要了解不同群体对于店铺服务方面的体验情况,并参考顾客提出的建议,找出不足之处&#…

流量控制:停止-等待协议与连续ARQ协议

停止-等待协议 可靠通信三大机制:序号确认反馈超时重传机制 . 接收方收到重复帧有以下原因: 重复帧是由于发送方重发定时器超时,重发定时器超时的原因: 设定时间段数据帧出现比特差错,或网络延迟大确认差错或网络延…

Hello CTP(四)——CTP交易API

一、CTP交易API简介 1、CTP交易API简介 CThostFtdcTraderApi交易API接口包含CThostFtdcTraderApi和CThostFtdcTraderSpi,通过CThostFtdcTraderApi向CTP发送操作请求,通过CThostFtdcTraderSpi接收CTP操作响应。 2、CTP API交易流程 (1&…

VoIP之RTP/RTCP协议

在VoIP领域中,一般使用RTP作为媒体的传输协议。RTP(real-time transport protocol)由rfc3550定义(其中RFC1889已经过期)。 RTP提供了一种适用于应用在端到端之间传输音频、视频等实时数据的网络传输方式。RTP没有资源预留机制,不确保实时服务…

TTDP、TRDP协议

1、TTDP即列车拓扑发现协议。该协议允许网络交换机在网络拓扑结构发生改变后自动与其他网络设备进行协商,并将根据新的列车车厢的指令为网络设备分配一个IP地址。 2、TRDP 列车实时数据协议规定了TRDP-PD过程数据和TRDP-MD消息数据两种主要的通信模式,两…

通讯协议汇总

UART UART(Universal Asynchronous Receiver/Transmitter)是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。 物理拓扑 帧结构/数据传输形式# 起始位:先发一个逻辑0,表示传输字符的开始&#xf…

十六、停止等待协议

文章目录 1、为什么要有停止等待协议2、研究停等协议的前提3、应用停等协议的两种情况3.1 无差错的情况3.2 有差错的情况3.2.1 数据帧丢失或检测到帧出错3.2.2 ACK丢失3.2.3 ACK迟到 4、停等协议的性能分析THE END 1、为什么要有停止等待协议 \qquad 除了比特出差错&#xff0c…

获取实时股票行情通达信接口

获取实时股票行情通达信接口