nosql最早提出,nosql诞生的原因
nosql是什么
NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
成都创新互联公司主营南木林网站建设的网络公司,主营网站建设方案,成都App制作,南木林h5小程序开发搭建,南木林网站营销推广欢迎南木林等地区企业咨询
虽然NoSQL流行语火起来才短短一年的时间,但是不可否认,现在已经开始了第二代运动。尽管早期的堆栈代码只能算是一种实验,然而现在的系统已经更加的成熟、稳定。不过现在也面临着一个严酷的事实:技术越来越成熟——以至于原来很好的NoSQL数据存储不得不进行重写,也有少数人认为这就是所谓的2.0版本。这里列出一些比较知名的工具,可以为大数据建立快速、可扩展的存储库。
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。
对于NoSQL并没有一个明确的范围和定义,但是他们都普遍存在下面一些共同特征:
不需要预定义模式:不需要事先定义数据模式,预定义表结构。数据中的每条记录都可能有不同的属性和格式。当插入数据时,并不需要预先定义它们的模式。
无共享架构:相对于将所有数据存储的存储区域网络中的全共享架构。NoSQL往往将数据划分后存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好于通过网络传输读取数据的性能,从而提高了系统的性能。
弹性可扩展:可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,数据可以自动迁移。
分区:相对于将数据存放于同一个节点,NoSQL数据库需要将数据进行分区,将记录分散在多个节点上面。并且通常分区的同时还要做复制。这样既提高了并行性能,又能保证没有单点失效的问题。
异步复制:和RAID存储系统不同的是,NoSQL中的复制,往往是基于日志的异步复制。这样,数据就可以尽快地写入一个节点,而不会被网络传输引起迟延。缺点是并不总是能保证一致性,这样的方式在出现故障的时候,可能会丢失少量的数据。
BASE:相对于事务严格的ACID特性,NoSQL数据库保证的是BASE特性。BASE是最终一致性和软事务。
NoSQL数据库并没有一个统一的架构,两种NoSQL数据库之间的不同,甚至远远超过两种关系型数据库的不同。可以说,NoSQL各有所长,成功的NoSQL必然特别适用于某些场合或者某些应用,在这些场合中会远远胜过关系型数据库和其他的NoSQL。
精选大数据相关用语
精选大数据相关用语
大数据 (Big Data) 与数据科学 (Data Science) 已成为大众耳熟能详的词汇,各行各业正在积极运用且开发大数据的价值,这些巨量数据也带来了巨大的商机。
这时身处于大数据时代的我们,自然得对大数据有所认识,在这里为大家列出了一些经常跟大数据一起出现的陌生用语,认识了这些大数据相关字汇,下次看大数据的相关文章就不会一直卡了。
Algorithm 演算法
出自于数学用语,在这里指的是在有限步骤内,分析数据的具体方法,而且通常由软件来执行。
AIDC 自动识别技术
AIDC(Automatic Identification and Data Capture)是将讯息数据自动识读、自动输入电脑的重要方法和手段,它是以电脑技术和通信技术为基础的综合性科学技术。常见的 AIDC 例如条码(Bar codes)、磁条(magnetic strips)、生物识别(Biometrics)、RFID 等技术。
AWS 亚马逊网路服务系统
2006 年 Amazon 开始以 Web 服务的形式向企业提供各种云端运算服务,包括运算、储存、数据库、分析、应用程式和部署服务。现在许多科学家、开发人员以及各企业的技术人员都在利用 AWS (Amazon Web Services)进行大数据分析。
Avro 序列化系统
Avro 是 Hadoop 底下的子专案,是一个数据序列化系统(Data serialization system),被设计用来支援大量数据交换。
Behavioral analytics 行为分析
行为分析是指用科学方法分析环境刺激与行为之间的因果关系,藉着系统性的观察来了解行为的变化原则,进而有系统的操作刺激,以达到行为的学习、塑造或改变。简单来说,就是用一个有系统的方法去观察、测量、收集客观数据来分析目标的表现行为。
Big Data 大数据
大数据(or 巨量数据),顾名思义是指大量的资讯,当数据量庞大到数据库系统无法在合理时间内进行储存、运算、处理,分析成能解读的资讯时,就称为大数据。有兴趣深入了解请参考《巨量数据的时代,用「大、快、杂、疑」四字箴言带你认识大数据》以及《7 个你不可不知的大数据定义》。
BI 商业智慧
BI (Business Intelligence) 指用现代数据仓储技术、线上分析处理技术、数据挖掘进行数据分析,再以图形化的界面或报表呈现以实现商业价值。
Cassandra 数据库系统
是 Apache 软件基金会底下的开源分布式 NoSQL 数据库系统,适合用来管理巨量的结构化数据,由于其良好的可扩展性和性能,被 Digg、Twitter、Hulu、Netflix 等知名网站所采用。
CDR 详细通联记录
CDRs (Call Detail Record)是电信网路的使用纪录,例如通话时间、通话长度等资讯。CDR 是电信业者与企业分析网路营运和客户行为的重要资源。
Clickstream Analytics 点击流分析
点击流(Clickstream)就是使用者的在网页间来来去去的点选记录,也可以分成 Upstream –– 进入这个网站的「来源」,以及 Downstream —— 拜访完这个网站之後的「去向」。对于网路行销跟搜寻引擎来说,点击流分析是十分重要的参考。
Cloud Computing 云端运算
云端运算(Cloud Computing)是一种将数据、工具及程式放到网际网路上处理的资源利用方式,是一种分散式电脑运算(Distrubted computing)的概念,也就是让网路上不同的电脑同时帮你做一件事,可以大大的增加处理速度。
也因为所有资讯都被放置到网路的虚拟空间里,工程师在绘制示意图时常以一朵云来代表这个虚拟空间,因而有了「云端(Cloud)」一名。
Data Mining 数据探勘
顾名思义,就好比在地球上从一堆粗糙的石头中进行地物探勘、寻找有价值的矿脉,数据探勘就是从巨量数据中提取出未知的、有价值的潜在资讯。
Data Modelling 数据建模
数据模式(Data Model)在资讯系统中指的是数据如何被表达、储存及取用的方式,包括数据的格式、定义和属性,数据之间的关系,以及数据的限制,而数据模式的设计过程就称为「数据建模」。
Data Visualization 数据视觉化
是关于数据之视觉表现形式的研究,数据视觉化的技术可以帮助不同背景的工程人员沟通、理解,以达良好的设计与分析结果。
Data Experts 数据专家
数据专家就是能利用数据作出研究评估的专业人士,像是数据分析师、数据科学家、数据架构师等都可以被归类为数据专家,其工作内容细分请参考《数据分析师?科学家?架构师?大数据人才的工作内容及年薪比较》。
Exploratory Data Analysis 探索式分析
探索式数据分析是指在没有标准流程跟方法的情况下,在现有的数据中找寻数据的结构和特点、探索潜藏于数据中的讯息,这种数据分析方法强调的是探索式的分析而非严谨的模式确认。
Hadoop 技术
Hadoop 是一个能够储存并管理大量数据的云端平台,为 Apache 软件基金会底下的一个开放原始码、社群基础、而且完全免费的软件,Hadoop 的两大核心功能 —— 储存(Store)及处理(Process)数据所用到的分散式档案系统 HDFS 跟 MapReduce 平行运算架构。Hadoop 被广泛应用于大数据储存和大数据分析,成为大数据的主流技术。有兴趣深入了解请参考《认识大数据的黄色小象帮手 –– Hadoop》。
Internet of Things 物联网
物联网(Iots)是一个全球化的网路基础建设,透过数据撷取以及通讯能力以连结实体与虚拟物件,透过网际网路的发展,物连网可透过特定的机制,将所有装置连结在一起,以供控制、侦测、识别,并交换所有的资讯。
NoSQL 数据库系统
NoSQL 最早是指「No SQL」,号称不使用 SQL 作为查询语言的数据库系统。但近来则普遍将 NoSQL 视为「Not Only SQL」,也就是「不只是 SQL」的意思,希望结合 SQL 优点并混用关联式数据库和 NoSQL 数据库来达成最佳的储存效果。
在巨量数据所带动的潮流下,各种不同形态的NoSQL数据库如雨後春笋般窜起,其中 MongoDB 是众多 NoSQL 数据库软件中较为人熟知的一种。
Predictive Analytics 预测分析
是指透过预测模型、机器学习、数据挖掘等技术来分析现有和历史的事实数据对未来作出预测的数据分析方法。
R 语言
R 是一个开放原始码统计软件,提供统计计算和绘图功能,类似 Matlab 跟 SAS,而 R 不但免费 而且简单易上手,近年来成为数据科学界里的重要工具。
SaaS 软件即服务
SaaS (Software-As-A-Service)是随着网际网路技术和应用软件的成熟而兴起的一种软件应用模式。SaaS 提供商将软件统一部署在自己的伺服器上,藉由网路提供软件给客户,所以客户不用购买软件,而是根据需求向提供商订购所需的服务,且客户无需对软件进行维护,服务提供商会全权管理和维护软件;软件厂商在向客户提供网际网路应用的同时,也提供软件的离线操作和本地数据存储,让客户随时随地都可以使用其定购的软件和服务。
对于许多小型企业来说,SaaS 是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程式的需要。
Terabyte (1 000 000 000 000 Bytes)
TB 为兆位元组,是数据量的分级,相当于 10^12 bytes。其他数据量分级如下:
Bytes (8 Bits)
Kilobyte (1000 Bytes)
Megabyte (1 000 000 Bytes)
Gigabyte (1 000 000 000 Bytes)
Terabyte (1 000 000 000 000 Bytes)
Petabyte (1 000 000 000 000 000 Bytes)
Exabyte (1 000 000 000 000 000 000 Bytes)
Zettabyte (1 000 000 000 000 000 000 000 Bytes)
Yottabyte (1 000 000 000 000 000 000 000 000 Bytes)
以上是小编为大家分享的关于精选大数据相关用语的相关内容,更多信息可以关注环球青藤分享更多干货
大数据中的商业智能以及非关系型数据库
就目前而言,大数据涉及到了很多技术,这些技术都是能够帮助大家更好地去理解大数据的相关知识,在这篇文章中我们重点为大家介绍一下商业智能和非关系型数据库,希望通过我们的介绍能够让大家真正了解这些关于大数据的知识。
1.商业智能
商业智能一般被叫做BI,即Business Intelligence的缩写,商业智能是一套完整的解决方案,用来将企业中现有的数据进行有效的整合,快速准确的提供报表并提出决策依据,帮助企业做出明智的业务经营决策。。当时将商业智能定义为一类由数据仓库、查询报表、数据分析、数据挖掘、数据备份和恢复等部分组成的、以帮助企业决策为目的技术及其应用。为了将数据转化为知识,需要利用数据仓库、联机分析处理(OLAP)工具和数据挖掘等技术。因此,从技术层面上讲,商业智能不是什么新技术,它只是数据仓库、OLAP和数据挖掘等技术的综合运用。由此可见,有关大数据的词汇之间都是有一定的联系的。
2.如何看待商业智能?
把商业智能看成一种解决方案应该比较恰当。商业智能的关键是从许多来自不同的企业运作系统的数据中提取出有用的数据并进行清理,以保证数据的正确性,然后经过抽取、转换和装载,合并到一个企业级的数据仓库里,从而得到企业数据的一个全局视图,在此基础上利用合适的查询和分析工具、数据挖掘工具、OLAP工具等对其进行分析和处理,最后将知识呈现给管理者,为管理者的决策过程提供数据支持。这也是商业智能为什么火热的原因。
3.非关系型数据库
非关系型数据库,简称NoSQL。我们通过百度百科上面得知NoSQL最早出现于1998 年,是由Carlo Storzzi最早开发的个轻量、开源、不兼容SQL 功能的关系型数据库,2009 年,在一次分布式开源数据库的讨论会上,再次提出了NOSQL 的概念,此时NOSQL主要是指I非关系型、分布式、不提供ACID (数据库事务处理的四个本要素)的数据库设计模式。很多数据科学家对NOSQL 最普遍的定义是“非关联型的”,强调Key-Value存储和文档数据库的优点,至此,NoSQL 开始正式出现在世人面前。
在这篇文章中我们给大家介绍了关于商业智能以及非关系型数据库的知识,上述提到的内容都是需要我们去学习和熟悉的内容,如果真的打算大数据行业的朋友一定要认真学起来 哟!
数据库是什么?Oracle又是啥玩意?
经常会有人问我数据库是干啥的,其实一开始我是拒绝回答的,因为我也不能做到通俗易懂的表达出来,毕竟我接触这个概念也没有多长时间,但随着问的人多了,我觉得是时候脑补一下我的第一堂课了,万一哪天冒出来个货跟你掰扯这事儿,你没分分钟给他说清,最后弄个丢里儿丢面儿,好尴尬呀。
数据库,说白了就是按照数据结构来组织、存储和管理数据的仓库,这些数据是结构化的,并可为多种应用服务。也就是说,数据库是使用计算机服务器来存储数据的,专门用来提供各种数据服务。可以这样想像,过去一个公司的所有财务数据都是放在保险柜里面,而现在我们就可以针对这些财务数据搭建一个数据库放在某台计算机或服务器上面;再比如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。最常见的数据库有:银行储蓄系统、手机话费系统、美容美发会员系统、超市会员积分系统、水电费系统、机票或火车票系统等,这些都需要后台数据库基础设施的支撑。举了这么多例子,应该是把数据库说明白了,至少能在大脑里面有个概念,知道这个东西是干啥的。
现在大数据被炒的红得发紫,而大数据的基础也是数据,由此可见,数据是一个企业的核心资源,说它是企业的立身之本、发展之基都不为过,因此,维护数据库的数据库管理员(DBA)是企业不可或缺的。
目前市面上的数据库产品有很多,单从规模上分可分为大型、中型、小型几种,典型的数据库产品如下:
大型数据库:Oracle、DB2、Sybase;
中型数据库:MySQL、SQLServer、Infomix;
小型数据库:Access、VisualFoxpro。在众多的数据库产品中,Oracle数据库一直处于行业领导先地位,也是当今最流行的关系型数据库。Oracle可翻译成"甲骨文",它是一家以数据库为主业的全球化公司,是全球第二大软件公司(第一名是微软公司),目前Oracle在数据库软件市场已经排名第一,数据库软件市场份额达到48.6%,遥遥领先于第二名占有率仅为20.7%的IBM公司的DB2。在中国市场上的计算机专业系统后台所使用的数据库尤以Oracle数据库居多。但是购买Oracle数据库需要很大一笔费用,一般的大型企业使用,需要有专业人员进行管理和维护,中小企业承担不起。中小企业为了节省成本,一般使用MySQL、PostgreSQL这类免费开源的数据库,所以Oracle数据库相关的工作岗位一般是在大型企业中。
对于为什么选择Oracle数据库,而不是其他的数据库?
第一,是因为Oracle数据库占据最大的市场份额,并且越来越大,市场需要很多Oracle数据库方面的人才,中国有句老话说"做对事,选对人",是同样的道理;第二,是很多非Oracle数据库的老系统正往Oracle数据库迁移,其他数据库市场占有率在减少,其他数据库工作者有面临失业的风险;第三,Oracle有大量的官方学习文档,还有部分中文文档,可以有效地进行学习;第四,Oracle有大量的从业人员,有共同方向的朋友可以互相帮助,不再是孤胆英雄;第五,是可以很容易地从Oracle官方网站下载功能齐全的数据库最新版本进行学习,可以让你了解数据库方面的最新发展趋势等。
在此说明,以后的所有内容都是基于Oracle11g数据库产品的,下面我们就简单介绍一下Oracle11g的系列产品:
企业版(EnterpriseEdition)此版本包含了数据库的所有组件,并且能够通过购买选项和程序包来进一步对其增强。
能支持例如大业务量的在线事务处理OLTP(On-LineTransactionProcessing联机事务处理系统)环境、查询密集的数据仓库和要求苛刻的互联网应用程序。
标准版1(StandardEditionOne)此版本为工作组、部门级和互联网、内联网应用程序提供了前所未有的易用性和性价比。从针对小型商务的单服务器环境到大型的分布式部门环境,该版本包含了构建重要商务应用程序所必需的全部工具。它仅许可在最高容量为2个处理器的服务器上使用,支持Windows/Linux/UNIX操作系统,并支持64位平台操作系统。
标准版(StandardEdition)此版本提供了StandardEditionOne所不具有的易用性、能力和性能,并且利用真正的应用集群(RAC)提供了对更大型计算机和服务集群的支持。它可以在最高容量为4个处理器的单台服务器上、或者在一个支持最多4个处理器的集群上使用,可支持Windows、Linux和UNIX操作系统,并支持64位平台操作系统。
简化版此版本支持与标准版1、标准版和企业版完全兼容的单用户开发和部署。通过将Oracle数据库获奖的功能引入到个人工作站中,该版本提供了结合世界上最流行的数据库功能的数据库,并且该数据库具有桌面产品通常具有的易用性和简单性,可支持Linux和Windows操作系统。
从存储结构上来说,目前流行的数据库主要包含以下两种:
RDBMS:关系型数据库,是指采用了关系模型来组织数据的数据库;
NoSQL数据库,是指那些非关系型的、分布式的数据库。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
关系型数据库优点:
1、容易理解
二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解。
2、使用方便
通用的SQL语言使得操作关系型数据库非常方便。
3、易于维护
丰富的完整性大大减低了数据冗余和数据部移植的概率。
4、事务安全
所有关系型数据库都不同程度的遵守事物的四个基本属性,因此对于银行、电信、证券等交易型业务是不可或缺的。
关系型数据库的瓶颈:
1、高并发读写需求
网站的用户并发性非常高,往往达到每秒上万次读写请求,对于传统型数据库来说,硬盘I/O是一个很大的瓶颈。
2、海量数据的高效率读写
互联网上每天产生的数据量是巨大的,对于关系型数据库来说,在一张包含海量数据的表中查询,效率是非常低的。
3、高扩展性和可用性
在基于WEB的结构中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库却没有办法像WEBServer和APPLICATIONServer那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移。
NoSQL数据库
NoSQL一词首先是CarloStrozzi在1998年提出的。2009年再次提出了NoSQL一词,用于指那些非关系型的、分布式的,且一般不保证遵循ACID原则的数据存储系统。
NoSQL具有以下特点:
1、可以弥补关系型数据库的不足
2、针对某些特定的需求而设计,可以具有极高的性能
3、大部分都是开源的,由于成熟度不够,存在潜在的稳定性和维护性问题。
关系型数据库适用于结构化数据,而非关系型数据库适用于非结构化数据,二者优势互补,相得益彰。
Oracle数据库未来的发展方向是提供结构化、非结构化、半结构化的解决方案,实现关系型数据库和NoSQL共存互补。值得强调的是,目前关系型数据库仍是主流数据库。
虽然NoSQL数据库打破了关系型数据库存储的观念,可以很好地满足WEB2.0时代数据的存储要求,但NoSQL数据库也有自己的缺陷。在现阶段的情况下,可以将关系型数据库和NoSQL数据库结合使用,相互弥补各自的不足。
关于数据库及其代表产品Oracle今天就介绍这么多,有兴趣的可以继续深挖,希望我的介绍能让你对数据库有一个更深入的认识。如果有志于在这方面发展的话,就让我们一起跟往事干杯从头再来。
为什么要使用NoSQL?NOSQL的优势
非常荣幸能受邀在InfoQ开辟这样一个关于NoSQL的专栏,InfoQ是我非常尊重的一家技术媒体,同时我也希望借助InfoQ,在国内推动NoSQL的发展,希望跟我一样有兴趣的朋友加入进来。这次的NoSQL专栏系列将先整体介绍NoSQL,然后介绍如何把NoSQL运用到自己的项目中合适的场景中,还会适当地分析一些成功案例,希望有成功使用NoSQL经验的朋友给我提供一些线索和信息。 NoSQL概念随着web2.0的快速发展,非关系型、分布式数据存储得到了快速的发展,它们不保证关系数据的ACID特性。NoSQL概念在2009年被提了出来。NoSQL最常见的解释是“non-relational”,“Not Only SQL”也被很多人接受。(“NoSQL”一词最早于1998年被用于一个轻量级的关系数据库的名字。) NoSQL被我们用得最多的当数key-value存储,当然还有其他的文档型的、列存储、图型数据库、xml数据库等。在NoSQL概念提出之前,这些数据库就被用于各种系统当中,但是却很少用于web互联网应用。比如cdb、qdbm、bdb数据库。 传统关系数据库的瓶颈 传统的关系数据库具有不错的性能,高稳定型,久经历史考验,而且使用简单,功能强大,同时也积累了大量的成功案例。在互联网领域,MySQL成为了绝对靠前的王者,毫不夸张的说,MySQL为互联网的发展做出了卓越的贡献。 在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态网页,动态交互类型的网站不多。 到了最近10年,网站开始快速发展。火爆的论坛、博客、sns、微博逐渐引领web领域的潮流。在初期,论坛的流量其实也不大,如果你接触网络比较早,你可能还记得那个时候还有文本型存储的论坛程序,可以想象一般的论坛的流量有多大。 Memcached+MySQL 后来,随着访问量的上升,几乎大部分使用MySQL架构的网站在数据库上都开始出现了性能问题,web程序不再仅仅专注在功能上,同时也在追求性能。程序员们开始大量的使用缓存技术来缓解数据库的压力,优化数据库的结构和索引。开始比较流行的是通过文件缓存来缓解数据库压力,但是当访问量继续增大的时候,多台web机器通过文件缓存不能共享,大量的小文件缓存也带了了比较高的IO压力。在这个时候,Memcached就自然的成为一个非常时尚的技术产品。 Memcached作为一个独立的分布式的缓存服务器,为多个web服务器提供了一个共享的高性能缓存服务,在Memcached服务器上,又发展了根据hash算法来进行多台Memcached缓存服务的扩展,然后又出现了一致性hash来解决增加或减少缓存服务器导致重新hash带来的大量缓存失效的弊端。当时,如果你去面试,你说你有Memcached经验,肯定会加分的。 Mysql主从读写分离 由于数据库的写入压力增加,Memcached只能缓解数据库的读取压力。读写集中在一个数据库上让数据库不堪重负,大部分网站开始使用主从复制技术来达到读写分离,以提高读写性能和读库的可扩展性。Mysql的master-slave模式成为这个时候的网站标配了。 分表分库随着web2.0的继续高速发展,在Memcached的高速缓存,MySQL的主从复制,读写分离的基础之上,这时MySQL主库的写压力开始出现瓶颈,而数据量的持续猛增,由于MyISAM使用表锁,在高并发下会出现严重的锁问题,大量的高并发MySQL应用开始使用InnoDB引擎代替MyISAM。同时,开始流行使用分表分库来缓解写压力和数据增长的扩展问题。这个时候,分表分库成了一个热门技术,是面试的热门问题也是业界讨论的热门技术问题。也就在这个时候,MySQL推出了还不太稳定的表分区,这也给技术实力一般的公司带来了希望。虽然MySQL推出了MySQL Cluster集群,但是由于在互联网几乎没有成功案例,性能也不能满足互联网的要求,只是在高可靠性上提供了非常大的保证。 MySQL的扩展性瓶颈 在互联网,大部分的MySQL都应该是IO密集型的,事实上,如果你的MySQL是个CPU密集型的话,那么很可能你的MySQL设计得有性能问题,需要优化了。大数据量高并发环境下的MySQL应用开发越来越复杂,也越来越具有技术挑战性。分表分库的规则把握都是需要经验的。虽然有像淘宝这样技术实力强大的公司开发了透明的中间件层来屏蔽开发者的复杂性,但是避免不了整个架构的复杂性。分库分表的子库到一定阶段又面临扩展问题。还有就是需求的变更,可能又需要一种新的分库方式。 MySQL数据库也经常存储一些大文本字段,导致数据库表非常的大,在做数据库恢复的时候就导致非常的慢,不容易快速恢复数据库。比如1000万4KB大小的文本就接近40GB的大小,如果能把这些数据从MySQL省去,MySQL将变得非常的小。 关系数据库很强大,但是它并不能很好的应付所有的应用场景。MySQL的扩展性差(需要复杂的技术来实现),大数据下IO压力大,表结构更改困难,正是当前使用MySQL的开发人员面临的问题。 NOSQL的优势易扩展NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。 大数据量,高性能 NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般MySQL使用Query Cache,每次表的更新Cache就失效,是一种大粒度的Cache,在针对web2.0的交互频繁的应用,Cache性能不高。而NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多了。 灵活的数据模型 NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的web2.0时代尤其明显。 高可用NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra,HBase模型,通过复制模型也能实现高可用。 总结NoSQL数据库的出现,弥补了关系数据(比如MySQL)在某些方面的不足,在某些方面能极大的节省开发成本和维护成本。 MySQL和NoSQL都有各自的特点和使用的应用场景,两者的紧密结合将会给web2.0的数据库发展带来新的思路。让关系数据库关注在关系上,NoSQL关注在存储上。
本文题目:nosql最早提出,nosql诞生的原因
文章来源:http://myzitong.com/article/hocipe.html