专栏名称: SegmentFault思否
SegmentFault (www.sf.gg)开发者社区,是中国年轻开发者喜爱的极客社区,我们为开发者提供最纯粹的技术交流和分享平台。
目录
相关文章推荐
OSC开源社区  ·  Bun ... ·  14 小时前  
码农翻身  ·  漫画 | 为什么大家都愿意进入外企? ·  23 小时前  
程序员的那些事  ·  OpenAI ... ·  昨天  
程序猿  ·  “我真的受够了Ubuntu!” ·  3 天前  
程序员小灰  ·  DeepSeek做AI代写,彻底爆了! ·  4 天前  
51好读  ›  专栏  ›  SegmentFault思否

数据库之战 | 寻找你心中的数据库漫威英雄

SegmentFault思否  · 公众号  · 程序员  · 2019-04-24 22:03

正文

本文原载于SegmentFault专栏"京东云技术新知"

作者:京东云技术新知

整理编辑:SegmentFault


你的朋友圈被《复仇者联盟4-终局之战》刷屏了嘛?复联4今天凌晨首映了!

四月什么最难抢?! 绝对是《复仇者联盟4》的首映票预售。飙到接近300的票价也难以阻挡漫威粉们的狂热。

抢不到票?来京东云开发者社区围观 MaNong Studio ”(程序员影业)出品的大片吧!



每一种数据库都有着自己的独特风格和个性, 如果把数据库与比作漫威中的超级英雄,你觉得它们都会是谁呢?


奇异博士


人物特点:


奇异博士本是一名神经外科医生,在一次车祸中失去了双手的能力,最后在神秘的至尊魔法师的帮助下让他拥有了超凡魔力。在漫威故事中奇异博士可以控制时间,无视空间、物理、化学规律,具有“ 三境空间 ”的超强魔法,但他也有一个槽点就是“ 精力有限 ”,使过几个大招过后法术就用尽了。



匹配数据库—Redis


Redis全称为:Remote Dictionary Server(远程数据服务),由意大利人Salvatore Sanfilippo(网名:antirez)开发,该软件使用C语言编写,Redis是一个key-value存储系统,它支持丰富的数据类型,如:string、list、set、zset(sorted set)、hash。


Redis是基于内存的数据缓存,同时也支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用;还可将命令保存在日志文件中。因此,Redis 虽为数据库但现多用于数据缓存 。这技能简直就是奇异博士中的“三镜空间”重现,进行任务进度存储、读取的同时,不会影响其他空间的正常工作,同时还能进行自身技能的加持。

不得不说666!


除此之外, Redis还支持丰富的数据类型、支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。和奇异博士一样,Redis拥有着超强的读写能力(速度是110000次/s,写的速度是81000次/s),同时可在不同空间施展强大能力。


Redis的精力也是有限的,它使用了单线程,难于发挥多核CPU的能力,同时随着内存的增加,也会带来缓存雪崩、缓存击穿、缓存穿透等常见问题,我们应通过设置上限及过期时间、合理规划数据结构、及时清理数据、对数据压缩存储,并加强关注内存的增长来避免这些问题。




惊奇队长


人物特点:


惊奇队长是一名美国空军飞行员,在机缘巧合之下被宇宙能量束击中,从而获得了惊人的超能力,并且还成为了一名克里族精英武装星际战队的战士。她集结了钢铁侠的飞行,美队的力量,雷神的电光火花,还有绿巨人的胖揍,黑寡妇的打斗技能也熟练到位...惊奇队长 各方面能力都超强 ,在漫画中堪称无敌。



匹配数据库—Oracle


是甲骨文公司的一款高效率、可靠性好、适应高吞吐量的关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统。


对于惊奇队长这个具有超级力量、超级速度、超级耐力、超级感知的全能人物,对应老牌的Oracle在合适不过了,它功能全面,能在所有主流平台上运行,适用于各类大、中、小型环境,在海量数据下,有更稳定和优秀的表现。他具有容量大的“超级力量”;“超级速度”般的高性能;具有支持多用户、大事务量的事务处理的“超级耐力”,对比其他数据库它处理大数据方面都更加稳定,同时Oracle安全功能更全面,可通过用户名,密码,配置文件,本地身份验证,外部身份验证,高级安全增强功能等;对于“超级感知”能力,Oracle 10g版本后推出的性能收集和分析工具AWR能够分析指定时间段内的数据库系统性能,全面感知数据库运行状况。


在剧中惊奇队长的超能力来自于空间宝石,而Oracle数据库对硬件的要求也很高,灵活性易用性方面比SQL Server要逊色些。




金刚狼


人物特点:


金刚狼是未来的X战警成员,变种人。拥有超强的 复原能力 ,对毒与病源的 抗体也很强 ,在电影里令人印象深刻的便是它两腕上的金刚爪,爪的尖端锐利无比,可撕裂任何物体。但除了锋利的狼爪,在原著中,金刚狼精通汉语、俄语、拉科塔语、西班牙语以及日语,再加上在各种一流组织摸爬滚打多年,金刚狼精通计算机,各种武器都用得很溜,也掌握了各种格斗技巧。



匹配数据库—Aurora


Aurora是Amazon在2014 AWS re:Invent大会上推出的一款全新关系数据库,提供商业级的服务可用性和数据可靠性,相比MySQL有5倍的性能提升,并基于RDS 提供自动化运维和管理。Aurora能以高端商业数据库十分之一的成本实现与之相当的性能;


对应金刚狼超强的自愈能力,Amazon Aurora 存储层可以有6个副本,多个副本之间通过Gossip协议可以保障数据的自我修复能力,并且可连续扫描数据块和磁盘是否存在任何错误,并自动更换。


与金刚狼一样,Aurora 的“抗体能力”也很强,存储具有容错能力,能以透明方式应对多达两个数据副本的丢失,而不会影响数据库写入可用性,还能在不影响读取可用性的情况下应对多达三个副本的丢失。


AWS在过去两年中进行了6万4千次数据库迁移;Aurora产品功能还在不断改进、完善中,速度很快。




绿巨人


人物特点:


班纳博士原是一名物理学家,在一次意外中受到伽马炸弹(Gamma Bomb)放射线污染,之后每当情绪激动就会变成名为浩克的绿色怪物。浩克拥有 超人的力量、跳跃能力和耐力。 他的能力与他的情绪相关。




匹配数据库—Greenplum


Greenplum是开发者在X86架构和Postgres数据库的基础上,结合Postgres社区和应用生态使用MPP架构将Postgres实例组织起来,并通过MPP后端来实现存储和查询。


Greenplum这个名字是一个7岁小女孩无意中脱口而出的。起初几个创始人在斟酌公司名字的时候都很没头绪,于是他们去问了朋友的孩子,一个年仅7岁的可爱小姑娘告诉他们叫“Apple”,但是爸爸告诉她,这个名字已经被别人用了,还有其他的么?很快孩子便随口说了“Greenplum”,于是“Greenplum”公司的名字就这样诞生了。


嗯,一切看心情~


类似绿巨人,Greenplum在存储功能上也具有强大的力量,支持高达支持50PB数据, 它基于低成本的开放平台基础上提供强大的并行数据计算性能力和海量数据管理能力。


而他的“跳跃能力”表现在并行计算能力方面。Greenplum对大任务、复杂任务有着快速高效的计算能力。


当然还有一点,他们都姓“绿”啦!




黑寡妇


人物特点:


黑寡妇有一个很长的俄罗斯名·····(纳塔利娅·爱丽安诺芙娜·罗曼诺娃)为什么是俄罗斯名字?因为她在苏联进行了基因改造,也因此在容颜上已然不老。卓越的外形加之强大的格斗能力训练,让她在拥有足够的“ 社交能力 ”的同时也拥有了能够全面判断危急情况时的环境评估能力。 足够的亲和力和快速处理多个信息流(如 威胁评估 )的能力足以让你走上峰顶。就算是在英雄扎堆的神盾局,也可以拥有举足轻重的地位。



匹配数据库—Neo4j


Neo4j是一个高性能的,NoSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。


随着互联网不断的发展,传统的关系型数据库如Oracle,MySQL已经难以支撑现下大数据量,高并发的场景了。 于是,像Neo4j这样的G raph-based的数据库也就有了出现的理由。就像男性和异种扎堆的超级英雄战队同样需要一个看起来平凡但能力出众且能与他们互补的角色出现。


图形数据库(Graph Database)是NoSQL数据库家族中特殊的存在,用于存储丰富的关系数据,Neo4j 是目前最流行的开源图形数据库,支持完整的事务。由于Neo4j的基本元素是节点和关系,它也特别适合处理有复杂关系的社交网络,在社交网络的场景有着很大的优势。另外在实现推荐系统上也很有优势,对于分析交易客户数据也很有帮助。它还能用于检测欺诈行为。所以,也是金融行业的权贵、宠儿。




黑豹-特查拉


人物特点:


黑豹(Black Panther)是对非洲国家瓦坎达守护者的的传统称呼,每代瓦坎达守护者几乎都是 王室成员 。特查拉(T'Challa)是目前的守护者,也是复仇者联盟成员之一。每一代守护者都要进食一块心形药草以得到远超常人的 速度、力量、体能、耐力以及敏锐度 。因此特查拉在成为瓦坎达国王后也拥有了同样的能力。王室血统、资源优质,牛津毕业的他拥有着过人的智商和超强学习及领导能力。



匹配数据库—MySQL


MySQL可以说是数据库开源界当之无愧的王者,是最受欢迎的开源软件之一,全球前20位的互联网企业,有19家的业务构建于MySQL平台上。全球超过1200万个MySQL安装,每天在MySQL网站有50,000个下载,没有其他开源数据库像MySQL这样流行(没办法就是这么主流,就是这么自信)。


MySQL具有丰富的高可用方案,能满足各种场景下的高可用需求;同时MySQL具有很好的性能,可通过添加实例进行扩展;MySQL公开源代码,也从根本上排除了蠕虫、后门存在的可能性。



MySQL历史悠久,社区和用户都非常的活跃,遇到问题时可及时寻求帮助。这就像《复联3》最后为什么英雄们都会聚集到瓦坎达王国一样。




蚁人


人物特点:


蚁人其实共有三代,但最为大家所熟知的是初代蚁人汉克·皮姆,他是复仇者联盟的创始人之一。汉克·皮姆(Hank Pym)发现了一种微形原子,可以将身体缩小至蚂蚁体积然后还原回正常人体积,他以自己的名称为此原子起名皮姆粒子(Pym particles)。 变小 后的皮姆力量反而增大,后来他极力研究蚂蚁,并做出了一个 可以跟蚂蚁沟通 的电子头盔,成为可以自由缩小及控制蚂蚁的蚁人(Ant-Man)。




匹配数据库—SQLite


SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。这也就意味着,它的体积和能耗足够小,因此也广泛运用于物联网中的各种嵌入式设备中。


SQLite支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 TCL、C#、PHP、Java等。这能力,就跟还有ODBC接口,同样比起MySQL、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。


世间万事,难得完美。蚁人的轻量级小体积虽然可以执行很多特殊任务,但他自身的总体综合能力都不算特别突出,难免会有弱点。值得注意的是SQLite 也是如此,它没有用户帐户概念,而是根据文件系统确定所有数据库的权限。这会使强制执行存储配额发生困难,强制执行用户许可变得不可能。









请到「今天看啥」查看全文