在如今这个精通社交媒体的世界里,人们都熟悉各种社交媒体网站,如 Facebook 、 Twitter 等,或电子商务巨头,如亚马逊和 Flipkart 或任何储存多用户资料的网站。这些资料可以是任何东西,包括客户姓名、年龄、地址、信用卡资讯、照片、评价、论述等。因此,简单地说,资料就是储存在计算机站群系统上的资讯,应用程式可以在需要时进行使用。对于通过互联网传输的资料,它被储存在网站的网络站群服务器上。站群服务器将其储存在资料库中。资料库是可以方便地访问、管理和更新的有组织的资料集合。 WordPress 站群香港 WP 虚拟主机为您介绍 NoSQL 资料库的内容、原因和方式。
开发应用程式时,最关键的决定之一是选择用于储存资料的资料库。无论是否有足够的技术知识,这个决定似乎都很困难。毕竟,这不仅是在短时间内存储资料的问题,也是检索资料的问题! 尤其是考虑到消费市场正在以快速的速度增长,资料堆积如山——物联网以及所有社交和互联的事物。如果要构建商业应用,那么应该预料到如此大量的资料,为了应对它,资料库的选择极为重要。
NoSQL 资料库的内容、原因和方式
以热门 WordPress 电商巨头亚马逊为例。作为客户,如果在亚马逊购物过,会注意到两点。其一,无论在搜索框中查询的时间有多长,都需要几秒钟的时间才能显示出结果 (记住,网络连线很好) 。其二,如果已经将某些商品加入购物车或正在浏览,会注意到” 经常一起买 “的选项。现在,想象一下亚马逊拥有的客户以及大量的资料,要在几秒钟内把这个整理出来,是一件艰巨的任务。但是,没有经历过延迟的情况吧? 原因是,亚马逊使用的是自己的 NoSQL 资料库 DynamoDB,它不把资料储存在表中,因此,定位起来比较方便。也就是说,本文的后半部分将介绍它如何做到这一点。
本文的目的是帮助理解为什么选择 NoSQL 资料库会对长远发展有利。然而,在继续前进之前,首先了解资料库的概念,当今流行的资料库模型,以及应该切换到 NoSQL 模型的原因。
资料库的型别:
资料库是资料的集合,可以很容易地访问、管理、更新和删除。有很多资料库型别,然而,资料库大致可以分为以下四种型别:
OODB 或物件导向的资料库
RDB 或关系型资料库
NoSQL(不仅是 SQL) 。
新 SQL
为了简单起见,将选择介绍两种流行的资料库模型,即关系型资料库和 NoSQL 。
在关系型资料库中,资料以行和列的形式储存在” 表” 中。它使用 SQL(结构化查询语言) 执行资料相关的操作,如建立表,向表中插入资料或从中读取资料,修改和更新资料,删除资料或表。这些操作通常被称为 CRUD 操作。资料以固定的模式相互连线。在非正式的情况下,关系型资料库也被称为 SQL 资料库。
总的来说,资料库就包含虽有资料和日志的中央储存库或容器。而模式则是资料库中的一个资料夹,它将所有连线的物件按逻辑分组。简单来说,卧室就是一张表,整个房屋就是资料库,整个平面图就是架构。
常用的关系型资料库有,MySQL 、 Oracle 、 Microsoft SQL Server 、 SQLite 等。
接著说说 NoSQL 资料库。 NoSQL 是一种非关联式资料库模型,与关联式资料库相比,它不以严格的模式或表的形式储存资料 (文章的后半部分将介绍它如何储存资料) 。因此,资料可以是任何型别,而且仍然可以轻松地储存或检索。推荐阅读:《WP 虚拟主机有哪些资料库型别?》
为什么应该转到 NoSQL
虽然关联式资料库已经使用了很多年,并且在过去已经满足了业务需求,但现在情况正在发生变化。随著互联网日益普及和社交媒体的使用,产生的资料量比几年前可能还要高。
作为 2013 年以来就一直强调资料量、速度和种类的平台,Domo 的资料显示,互联网人口的比例和每分钟产生的资料都在陡然上升! 在连续 7 年的报告中,互联网人口占世界总人口的比例已经达到 56.1%,目前已占 43 亿人,这比 2022 年 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 平台、 WordPress 电商应用或实时分析等。
列
在基于列的资料库中,资料以列的形式写入,而不是传统的行结构。基于列的资料库使用列定向,每个列都与一个列键相关联。
可以用在哪里? 基于列的资料库通常用于管理资料仓储、 CRM 、商业智慧等。
图
在基于图的资料库中,资料通常以灵活的图形表示方式进行排列,而不是表或列的限制。在这里,资料库不仅储存了物件,而且还储存了这些物件之间的关系。
可以用在哪里? 基于图的 NoSQL 资料库被广泛应用于社交网络、空间资料、物流等领域。推荐阅读:《Python 资料库建立 mysql 资料库表和写入 mysql 资料库》
它对业务的帮助:
介绍了不同型别的 NoSQL 资料库和各种应用,以及在哪里使用它们。如果业务模式属于其中的一种,同时又要处理大量的实时资料,那么改用 NoSQL 资料库将是一个不错的决定。同时,不一定只需要有一个资料库,根据业务和查询的情况,可以有多个资料库。
最后,真正重要的是资料有多少,以及认为哪种处理方式最好! 推荐相关阅读:《美国独立主机如何建立资料库》