一份菜单

SQL与NoSQL数据库的差异说明了很少的示例数据库

你们大多数人已经熟悉SQL数据库,并且对MySQL,Oracle或其他SQL数据库有很好的了解。在过去的几年中,NoSQL数据库被广泛采用以解决各种业务问题。

了解SQL和NoSQL数据库之间的区别以及一些可以使用的可用NoSQL数据库是有帮助的。

SQL与NoSQL:高级差异

  • SQL数据库主要被称为关系数据库(RDBMS)。而NoSQL数据库主要被称为非关系数据库或分布式数据库。
  • SQL数据库是基于表的数据库,而NoSQL数据库是基于文档的键值对,图形数据库或大列存储。这意味着SQL数据库以表的形式表示数据,该表由n行数据组成,而NoSQL数据库是键值对,文档,图形数据库或宽列存储的集合,它们没有标准的模式定义。需要坚持。
  • SQL数据库具有预定义的架构,而NoSQL数据库具有用于非结构化数据的动态架构。
  • SQL数据库是垂直可伸缩的,而NoSQL数据库是水平可伸缩的。通过增加硬件的功能来扩展SQL数据库。通过增加资源池中的数据库服务器来减少负载,可以扩展NoSQL数据库。
  • SQL数据库使用SQL(结构化查询语言)来定义和处理数据,这非常强大。在NoSQL数据库中,查询集中在文档集合上。有时也称为UnQL(非结构化查询语言)。使用UnQL的语法因数据库而异。
  • SQL数据库示例:MySql,Oracle,Sqlite,Postgres和MS-SQL。 NoSQL数据库示例:MongoDB,BigTable,Redis,RavenDb,Cassandra,Hbase,Neo4j和CouchDb
  • 对于复杂查询:SQL数据库非常适合复杂查询密集型环境,而NoSQL数据库不适合复杂查询。在高层,NoSQL不要’具有用于执行复杂查询的标准接口,并且NoSQL中的查询本身不如SQL查询语言强大。
  • 对于要存储的数据类型:SQL数据库不是最适合分层数据存储的。但是,NoSQL数据库更适合分层数据存储,因为它遵循键值对存储类似JSON数据的数据的方式。 NoSQL数据库是大数据集(即大数据)的高度首选。为此,Hbase是一个示例。
  • 为了可伸缩性:在大多数典型情况下,SQL数据库是垂直可伸缩的。您可以通过增加单个服务器上的CPU,RAM,SSD等来管理增加的负载。另一方面,NoSQL数据库是水平可伸缩的。您只需在NoSQL数据库基础结构中轻松添加更多服务器即可处理大量流量。
  • 对于基于高事务的应用程序:SQL数据库最适合于重型事务处理类型的应用程序,因为它更稳定并且可以保证数据的原子性和完整性。尽管可以将NoSQL用于事务目的,但在高负载和复杂的事务应用程序中,它仍然不具有可比性和稳定性。
  • 支持:他们的供应商为所有SQL数据库提供了出色的支持。还有许多独立的咨询人员,可以为大型部署提供SQL数据库帮助。对于某些NoSQL数据库,您仍然必须依靠社区的支持,并且只有有限的外部专家可以帮助您设置和部署大规模的NoSQL部署。
  • 对于属性:SQL数据库强调ACID属性(原子性,一致性,隔离性和耐用性),而NoSQL数据库遵循Brewers CAP定理(一致性,可用性和分区容限)
  • 对于数据库类型:在较高层次上,我们可以将SQL数据库分类为开放源代码或商业供应商提供的封闭源。 NoSQL数据库可以根据将数据存储为图形数据库,键值存储数据库,文档存储数据库,列存储数据库和XML数据库的方式进行分类。

SQL数据库示例

1. MySQL社区版

MySQL数据库 是非常流行的开源数据库。它通常与apache和PHP堆叠在一起,尽管也可以与nginx和使用Node js的服务器端javascript堆叠在一起。以下是MySQL的一些优点和优势:

  • 复制:通过跨多个节点复制MySQL数据库,可以大大减少工作量,从而提高业务应用程序的可伸缩性和可用性
  • 分片:在高流量网站中没有大量写操作时,MySQL分片很有用。通过分片MySQL服务器,将应用程序划分为多个服务器,从而将数据库分成小块。由于可以为此目的部署低成本服务器,因此具有成本效益。
  • Memcached作为MySQL的NoSQL API:Memcached可用于提高数据检索操作的性能,从而为MySQL服务器提供NoSQL api的优势。
  • 成熟度:该数据库已经存在很长时间了,并且大量的社区投入和测试已进入该数据库,使其非常稳定。
  • 广泛的平台和语言:MySql适用于所有主要平台,例如Linux,Windows,Mac,BSD和Solaris。它还具有与Node.js,Ruby,C#,C ++,C,Java,Perl,PHP和Python等语言的连接器。
  • 成本效益:它是开源和免费的。

2. MS-SQL Server速成版

它是一个功能强大且用户友好的数据库,在Microsoft的支持下具有良好的稳定性,可靠性和可伸缩性。以下是MS-SQL的一些优点和优点:

  • 集成开发环境:Microsoft Visual Studio,Sql Server Management Studio和Visual Developer工具为开发提供了非常有用的方法,并提高了开发人员的生产率。
  • 灾难恢复:它具有良好的灾难恢复机制,包括数据库镜像,故障转移群集和RAID分区。
  • 云备份:执行数据库的云备份时,Microsoft还提供云存储。

3. Oracle Express版

这是限量版 Oracle企业版服务器 有一定的限制。该数据库免费用于开发和部署。以下是Oracle的一些优点和优势:

  • 易于升级:可以轻松升级到较新版本或企业版。
  • 广泛的平台支持:它支持广泛的平台,包括Linux和Windows
  • 可伸缩性:尽管该数据库的可伸缩性不如MySQL服务器具有成本效益,但该解决方案非常可靠,安全,易于管理且具有生产力。

NoSQL数据库示例

1. MongoDB

Mongodb 是最流行的基于文档的NoSQL数据库之一,因为它以JSON之类的文档存储数据。它是具有动态架构的非关系数据库。它由DoubleClick的创始人开发,用C ++编写,目前已被《纽约时报》,Craigslist,MTV Networks等一些大公司使用。以下是MongoDB的一些优点和优势:

  • 速度:对于简单的查询,由于所有相关数据都在单个文档中,因此消除了联接操作,因此性能良好。
  • 可扩展性:它是水平可扩展的,即您可以通过增加资源池中的服务器数量来减少工作量,而不是依赖于独立资源。
  • 可管理:开发人员和管理员都易于使用。这也提供了分片数据库的功能
  • 动态架构:它使您可以灵活地发展数据架构,而无需修改现有数据

2. CouchDB

CouchDB 也是基于文档的NoSQL数据库。它以JSON文档的形式存储数据。以下是CouchDB的一些优点和优点:

  • 无模式:作为NoSQL家族的成员,它还具有动态模式,使其更加灵活,具有用于存储数据的JSON文档形式。
  • HTTP查询:您可以使用Web浏览器访问数据库文档。
  • 冲突解决:它具有自动冲突检测功能,在分布式数据库中很有用。
  • 轻松复制:实施复制非常简单

3. 雷迪斯

雷迪斯 是另一个开源NoSQL数据库,主要是因为它的速度快而被使用。它是用ANSI C语言编写的。以下是Redis的一些优点和优势:

  • 数据结构:Redis提供了有效的数据结构,以扩展它有时被称为数据结构服务器的能力。存储在数据库中的键可以是哈希,列表,字符串,排序或未排序的集合。
  • 将Redis用作缓存:您可以通过在有限的时间内实施密钥来提高性能,从而将Redis用作缓存。
  • 非常快:由于它与内存数据集一起使用,因此被认为是最快的NoSQL服务器之一。

如果您喜欢这篇文章,您可能还会喜欢..

  1. 50个Linux Sysadmin教程
  2. 50个最常用的Linux命令(包括示例)
  3. 排名前25位的最佳Linux性能监视和调试工具
  4. 妈妈,我找到了! 15个实用的Linux Find命令示例
  5. Linux 101 Hacks第二版电子书 Linux 101黑客手册

Bash 101 Hacks书 Sed和Awk 101黑客手册 Nagios Core 3书 Vim 101黑客手册

{ 33 评论… 加一 }

  • 贾拉尔·哈吉霍拉玛利 2014年1月15日,上午2:06

    你好
    非常有用的文章
    谢谢。

  • 莫汉库玛 2014年1月15日,上午3:20

    嗨,非常感谢您的这篇文章…我在等这个…

  • 丹·麦克 2014年1月15日,上午3:40

    还可以添加,NoSQL数据库倾向于以更自然的方式表示实体。
    关系数据库的规范化规则通常以人为的方式破坏实体,以避免冗余(这是NoSQL数据库所做的事情)’不要太在意)。因此,关系数据库最终往往以对象不是真实世界的良好表示形式。 NoSQL数据库在表示真实对象方面做得更好。
    It’令我耳目一新的是,昨天我才在Advanced Databases上进行了考试,这就是问题之一!

  • 塔伦·特雷罕(Tarun Trehan) 2014年1月15日,上午4:53

    你好
    好文章 in a very concise and apt form.
    也许是,我们可以包括一些属于该伞下项目的真实示例。

  • 巴吉亚杰 2014年1月15日,上午8:12

    在我的存储桶上增加了更多知识。
    感谢TheGeekStuff的这篇文章。

  • 路易斯·科利穆尔 2014年1月15日,上午10:08

    确实。

  • 阿伦 2014年1月15日,上午10:09

    你好
    简单& 好文章

  • 提姆 2014年1月15日,下午1:37

    我一直很喜欢阅读TGS文章,即使有时它们不在我的领域之内。但是,在这一点上,您似乎确实错过了两个家庭之间的重大差异。

    SQL数据库必须有一个设计,一个设计器以及何时进行设计’如果做对了,可以_证明_是对的。那里’说那里有大量的数学理论’没有重复,也没有内部完整性故障。

    非SQL数据库实际上是一堆东西,它们可能是准确的,也可能不是,可能是完整的,也可能不是,并且几乎可以肯定有重复的和不一致的东西。不是说没有’一个不受控制的堆东西的地方;但是我不’t think it’有权将它们称为数据库。

    ðŸ™,

    提姆

  • 湿婆 2014年1月16日,上午12:11

    感谢这个有用的文章。我将详细了解Mongo DB。

  • 林沙德 2014年1月16日上午10:13

    好文章.

  • 普拉蒂克 2014年1月16日,下午11:09

    好文章

  • 森提尔·库玛(Senthil Kumar) 2014年1月30日,晚上11:21

    学到一些有趣的东西!谢谢你的时间!

  • artaxerxes3 2014年2月4日,上午2:47

    只是一个小插件,在SQL数据库中,您不需要’记得Oracle的主要竞争对手,意思是IBM DB2和IBM Informix。

  • 巴斯蒂安VS 2014年2月19日,上午1:41

    最近,我读到了有关Couchbase的信息。来自memcached和couchdb的骄傲。它是一个Nosql数据库。看起来Viber最近从mongodb迁移到了沙发床,您能否也分享有关沙发床的更多详细信息

  • 杰耶什 2014年3月12日,上午1:20

    “易于阅读和学习” type of artical.

    我喜欢(Y)

  • 萨普塔吉里 2014年6月26日,上午5:11

    垂直可伸缩性和水平可伸缩性有什么区别,请举例说明。

  • 方健 2014年11月18日上午9:58

    SQL和NoSQL数据库都有其自身的优势和局限性,因此要充分利用它们的优势。

    通常,我会将来自SQL数据库的数据(带有那些复杂的查询)缓存到MongoDB(其表很大)中。然后,Webapp以极快的速度从NoSQL DB中的缓存表或文档中检索数据。

  • 文·利扬(Vin Liyan) 2014年12月3日,晚上10:46

    不错的文章,易于阅读。

  • 斯里尼瓦斯 2014年12月30日,上午12:46

    好人ðŸ™,

  • 希兰 2015年2月17日,上午12:37

    做得好 !

  • 莫汉 2015年2月25日,上午12:13

    好文章…..I have Sql db …我只是想将此数据复制到Redis服务器中,以便及时进行。是吗’可能吗?。你能建议我这个吗…

  • Sliderbahn 2015年4月8日,下午5:34

    谢谢!很棒的文章。

  • 西玛 2015年8月10日,下午1:32

    谢谢!!!!对初学者的描述很好

  • 穆罕默德 2015年8月20日,上午2:03

    非常感谢,
    做得好…

  • 马赫什·科利(Mahesh Koli) 2015年10月24日,上午1:03

    非常清楚地陈述了所有要点。
    喜欢它,得到一个概念。
    谢谢。

  • 阿山 2016年3月14日,晚上10:53

    非常感谢。
    ðŸ™,

    -阿山

  • 哈罗德·斯科特 2016年6月8日,上午10:15

    感谢本文,我了解了某些部分,但不是全部,有人知道一个好的执行概述吗?我才刚开始编程,所以代码部分使我有些困惑ðŸ™,

  • 拉贾特 2016年7月10日,上午7:08

    许多感谢的描述…

  • 阿西夫·比拉(Asif Billa) 2016年12月13日,上午8:08

    好文章.
    真的很有帮助。

  • 迪列普 2016年12月19日,下午2:45

    这非常有用..谢谢

  • 拉什米 一月16,2017,11:56下午

    很好的文章….Thanks!!!

  • 操作系统 三月6,2019,9:44上午

    非常非常好的文章。谢谢!

  • 雷蒙德·纳西夫(Raymond Naseef) 三月25,2019,10:13下午

    即使已经好几年了,这也很棒。谢谢。我发现了语法错误:
    1 – you can use NoSQL …没有可比性和貂皮— stable?
    2 – can be classified …作为图形数据库,键值存储数据库,文档存储数据库,列存储数据库— databases

    另外,我相信某些SQL服务器也可以用作NoSQL服务器,例如Postgres。可能很高兴提到,如果您没有’t (I haven’还没读完这本书)。

发表评论