MySQL与MongoDB:选择数据管理解决方案

1.简介

可以公平地说,作为IT专业人员,我们生活在数据管理时代的黄金时代。 随着我们的软件系统在无数的可伸缩性和可用性要求的驱动下变得越来越复杂和分散,多年来使用的传统解决方案开始落后。

本教程的目的是对这两种数据管理解决方案进行公平的概述:以MySQL为代表的成熟且广泛使用的关系数据库,以及一个新的子代MongoDBMongoDB则代表了新一代的数据存储。 决不是一场与明确赢家的战斗。 相反,其目的是通过研究MySQLMongoDB的功能,讨论每个开发人员具有的不同保证和限制,来帮助开发人员做出选择并找到适合其应用程序的合适方法。

2. RDBM系统的优势

数据管理软件的历史和发展并不是花费时间的特别令人兴奋的话题。 在相当长的一段时间里,关系数据库管理系统一直处于领导地位,多年来,显而易见的选择是MySQLPostreSQLOracle ,仅举几例。 SQL (及其特定于供应商的方言)是查询关系数据存储的实际标准,根据定义,每个后端软件开发人员都必须学习并至少了解其一些基础知识。 直到最近,当出现了一系列新的数据管理系统时,它的效果都出乎意料地好,这种现象也被称为NoSQL (或不仅SQL )运动。

3. NoSQL运动的新时代

如今,现代软件系统在数据量和请求/事务吞吐量要求方面面临的挑战表明,关系数据存储通常成为瓶颈,从而对整个系统的可伸缩性施加了限制。 传统上,解决此问题的方法是购买一个更大的设备(所谓的垂直可伸缩性 ),但是在某些时候,要付出的代价变得非常非常高,这使整个系统非常昂贵且不切实际。

业界一直在积极寻求一种便宜的方法来构建复杂的分布式系统,而使用水平可伸缩性 。 它还意味着想出关系数据存储的替代方案,它们也可以水平扩展。 那一刻, NoSQL运动开始了。

4.表格,文档,图形,键/值

关系数据模型以元组和关系(最好称为表)表示所有数据。 结构化数据非常适合此模型,并且很长一段时间没有其他可行的替代方案。 随着NoSQL的发展,开发了许多替代数据模型,催生了一大堆专用数据存储系统。

NoSQL解决方案可以分为几种不同的类别。 文档数据存储区旨在存储,查询和管理文档(半结构化数据)。 这类更成熟的代表包括CouchDBCouchbaseMongoDBOrientDBHyperDex键/值数据存储区旨在存储,查询和管理关联数组(也称为字典或哈希)。

该类别中使用最广泛的代表包括DynamoDBFoundationDBHyperDexMemcacheDBRedisRiakAerospikeOrientDB图形数据存储区旨在有效地存储和操作图形结构。 该类别的著名代表包括Neo4JInfiniteGraphGraphBaseOrientDB 。 最后但并非最不重要的一点是, 宽列数据存储正在采用混合方法(将键/值数据存储和传统关系数据存储的某些特征结合在一起)。 该类别中最先进的代表包括AccumuloCassandraHBase

请注意,上面介绍的不同NoSQL数据存储列表远非完整,它仅包含最知名和使用最广泛的名称,但是还有更多的名称。

5. MySQL和MongoDB:明智的决策

足够的介绍,让我们继续进行更实际的事情。 在本部分的教程中,我们将研究使用MySQLMongoDB进行应用程序开发过程的各个方面,还将花费一些时间来讨论部署和监视。 目的是讨论每个数据存储区所做的取舍和设计决策,并分析它们如何改变我们开发应用程序的方式。 此外,本教程的另一个目的是在

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值