在如今这个精通社交媒体的世界里,人们都熟悉各种社交媒体网站,如Facebook、Twitter等,或电子商务巨头,如亚马逊和Flipkart或任何存储用户数据的网站。这些数据可以是任何东西,包括客户姓名、年龄、地址、信用卡信息、照片、评价、论述等。因此,简单地说,数据就是存储在计算机系统上的信息,应用程序可以在需要时进行使用。对于通过互联网传输的数据,它被存储在网站的网络服务器上。服务器将其存储在数据库中。数据库是可以方便地访问、管理和更新的有组织的数据集合。bluehost香港虚拟主机为您介绍NoSQL数据库的内容、原因和方式。
开发应用程序时,最关键的决定之一是选择用于存储数据的数据库。无论是否有足够的技术知识,这个决定似乎都很困难。毕竟,这不仅是在短时间内存储数据的问题,也是检索数据的问题! 尤其是考虑到消费市场正在以快速的速度增长,数据堆积如山——物联网以及所有社交和互联的事物。如果要构建商业应用,那么应该预料到如此大量的数据,为了应对它,数据库的选择极为重要。
以热门电商巨头亚马逊为例。作为客户,如果在亚马逊购物过,会注意到两点。其一,无论在搜索框中查询的时间有多长,都需要几秒钟的时间才能显示出结果(记住,网络连接很好)。其二,如果已经将某些商品加入购物车或正在浏览,会注意到”经常一起买 “的选项。现在,想象一下亚马逊拥有的客户以及大量的数据,要在几秒钟内把这个整理出来,是一件艰巨的任务。但是,没有经历过延迟的情况吧?原因是,亚马逊使用的是自己的NoSQL数据库DynamoDB,它不把数据存储在表中,因此,定位起来比较方便。也就是说,本文的后半部分将介绍它如何做到这一点。
本文的目的是帮助理解为什么选择NoSQL数据库会对长远发展有利。然而,在继续前进之前,首先了解数据库的概念,当今流行的数据库模型,以及应该切换到NoSQL模型的原因。
数据库的类型:
数据库是数据的集合,可以很容易地访问、管理、更新和删除。有很多数据库类型,然而,数据库大致可以分为以下四种类型:
- OODB或面向对象的数据库
- RDB或关系型数据库
- NoSQL(不仅是SQL)。
- 新SQL
为了简单起见,将选择介绍两种流行的数据库模型,即关系型数据库和NoSQL。
在关系型数据库中,数据以行和列的形式存储在”表”中。它使用SQL(结构化查询语言)执行数据相关的操作,如创建表,向表中插入数据或从中读取数据,修改和更新数据,删除数据或表。这些操作通常被称为CRUD操作。数据以固定的模式相互连接。在非正式的情况下,关系型数据库也被称为SQL数据库。
总的来说,数据库就包含虽有数据和日志的中央存储库或容器。而模式则是数据库中的一个文件夹,它将所有连接的对象按逻辑分组。简单来说,卧室就是一张表,整个房屋就是数据库,整个平面图就是架构。
常用的关系型数据库有,MySQL、Oracle、Microsoft SQL Server、SQLite等。
接着说说NoSQL数据库。NoSQL是一种非关系数据库模型,与关系数据库相比,它不以严格的模式或表的形式存储数据(文章的后半部分将介绍它如何存储数据)。因此,数据可以是任何类型,而且仍然可以轻松地存储或检索。推荐阅读:《虚拟主机有哪些数据库类型?》
为什么应该转到NoSQL
虽然关系数据库已经使用了很多年,并且在过去已经满足了业务需求,但现在情况正在发生变化。随着互联网日益普及和社交媒体的使用,产生的数据量比几年前可能还要高。
作为2013年以来就一直强调数据量、速度和种类的平台,Domo的数据显示,互联网人口的比例和每分钟产生的数据都在陡然上升! 在连续7年的报告中,互联网人口占世界总人口的比例已经达到56.1%,目前已占43亿人,这比2018年1月增长了9%。而就趋势而言,在很长一段时间内,不会出现负曲线。这种增长可以归因于对社交媒体、YouTube、Netflix等流行的互联网服务以及互连的传感器——物联网构件——的增加。
鉴于这种惊人的数据增长,管理数据是一项艰巨的任务,而关系数据库并不擅长快速处理这种数据。这是由于新进来的数据并不总是适合关系数据库所遵循的紧密模式。而NoSQL数据库则可以轻松地管理大量的数据和对其进行的操作。
例如,如果有一个很受欢迎的网站,比如说有至少一万个注册客户,而且每天都在增长,这些客户都会遵循自己的生命周期和流程。在前端,他们会加载页面、同类商品、将产品加入购物车等,但在后端,每当执行一个操作,就会从数据库中检索数据,考虑某类查询的次数,建议同类商品,等等。
搜索
基于搜索的建议
如果所有这些操作都需要时间来运行,比如说可能超过几秒或一分钟(即从数据库中检索/读取、搜索、查找和显示),用户可能会放弃购物车,去其他地方。
操作缓慢的原因可能是网站加载速度慢,也可能是处理数据的后台慢。如果有关系数据库,有可能会有无数的行和列,找到正确的匹配会花很长时间。另一方面,如果使用NoSQL数据库,这个问题会大大减少。
那么这是实时的例子吗?是的,亚马逊使用最初提到的DynamoDB,谷歌使用BigTable,都是NoSQL数据库的例子。推荐阅读:《保护数据库安全的五个方法》
简单来说,以下是转用NoSQL数据库的4个理由:
- 高度的可扩展性
- 能够处理大量的数据——结构化和半结构化的数据。
- 无模式
- 快速迭代
NoSQL数据库类型
看过了转用NoSQL数据库的主要优势,现在了解一下NoSQL数据库的类型。简单地说,应该根据业务类型去选择数据库的类型。
NoSQL数据库有四种类型,即:Key-value(键值)、Document(文档)、Column(列)和Graph(图)。
- 键值
在键值数据库中,数据以键/值对的形式存储在哈希表中,其中键是自动生成和唯一的,而值可以是任何东西,例如字符串、JSON、BLOB等。这种类型的数据库通常被用作字典或集合。
可以用在哪里?这种类型的数据库最适合用于电子商务或基于购物车的网站。
- 文档
在基于文档的NoSQL数据库中,数据以键值对的形式进行存储和检索,但是,这里的值以JSON的形式存储。BSON或XML类型的文档。键值数据库和文档之间的关键区别之一是,后者嵌入了与存储内容相关的属性元数据,从而有助于根据内容轻松查询数据。
可以用在哪里?这种类型的数据库多用于Blogging或CMS平台、电商应用或实时分析等。
- 列
在基于列的数据库中,数据以列的形式写入,而不是传统的行结构。基于列的数据库使用列定向,每个列都与一个列键相关联。
可以用在哪里?基于列的数据库通常用于管理数据仓库、CRM、商业智能等。
- 图
在基于图的数据库中,数据通常以灵活的图形表示方式进行排列,而不是表或列的限制。在这里,数据库不仅存储了对象,而且还存储了这些对象之间的关系。
可以用在哪里?基于图的NoSQL数据库被广泛应用于社交网络、空间数据、物流等领域。推荐阅读:《Python数据库创建mysql数据库表和写入mysql数据库》
它对业务的帮助:
介绍了不同类型的NoSQL数据库和各种应用,以及在哪里使用它们。如果业务模式属于其中的一种,同时又要处理大量的实时数据,那么改用NoSQL数据库将是一个不错的决定。同时,不一定只需要有一个数据库,根据业务和查询的情况,可以有多个数据库。
最后,真正重要的是数据有多少,以及认为哪种处理方式最好!推荐相关阅读:《美国独立主机如何创建数据库》