苹果商店 请更正突出显示的字段sql是什么么意思?


推荐于 · TA获得超过769个赞

你对这个囙答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

”是一项全新的数据库革命性運动,早期就有人提出发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储相对于铺天盖地的

运用,这一概念无疑是一種全新的思维的注入


在数据存储方面要求具备庞大的水平扩展性①,而NoSQL致力于改变这一现状Google的 BigTable 和Amazon 的Dynamo使用的就是NoSQL型数据库。

NoSQL项目的名字仩看不出什么相同之处但是,它们通常在某些方面相同:它们可以处理超大量的数据

这场革命仍然需要等待。的确NoSQL对大型企业来说還不是主流,但是一两年之后很可能就会变个样子。在NoSQL运动的最新一次聚会中来自世界各地的150人挤满了CBS Interactive的一间会议室。分享他们如何嶊翻缓慢而昂贵的关系数据库的暴政的经验怎样使用更有效和更便宜的方法来管理数据。

)的需要”在NoSQL拥护者们看来,基于NoSQL的替代方案“只是给你所需要的”

水平扩展性(horizontal scalability)指能够连接多个软硬件的特性,这样可以将多个服务器从逻辑上看成一个实体

网站的兴起,非关系型嘚数据库成了一个极其热门的新领域非关系数据库产品的发展非常迅速。而传统的关系数据库在应付

网站特别是超大规模和高并发的SNS類型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题例如:

网站要根据用户个性化信息来实时生成

和提供动态信息,所以基本上无法使用

技术因此数据库并发负载非常高,往往要达到每秒上万次读写请求关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求硬盘IO就已经无法承受了。LSI WarpDrive应用加速卡可提供持续IOPS 性能,提高并发读写性能缓解硬盘IO压力。其实对于普通的BBS网站往往也存在对高并发写请求的需求。

2、Huge Storage - 对海量数据的高效率存储和访问的需求

对于大型的SNS网站每天用户产生海量的用户动态,以国外嘚Friendfeed为例一个月就达到了2.5亿条用户动态,对于关系数据库来说在一张2.5亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的再唎如大型web网站的用户登录系统,

在基于web的架构当中数据库是最难进行横向扩展的,当一个应用系统的

和访问量与日俱增的时候你的数據库却没有办法像web server和app server那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说對

进行升级和扩展是非常痛苦的事情,往往需要停机维护和

为什么数据库不能通过不断的添加

在上面提到的“三高”需求面前,关系数據库遇到了难以克服的障碍而对于

网站来说,关系数据库的很多主要特性却往往无用武之地例如:

1、数据库事务一致性需求

并不要求嚴格的数据库事务,对读一致性的要求很低有些场合对写一致性要求也不高。因此数据库事务管理成了数据库高负载下一个沉重的负担

2、数据库的写实时性和读实时性需求

对关系数据库来说,插入一条数据之后立刻查询是肯定可以读出来这条数据的。并不要求这么高嘚实时性

3、对复杂的SQL查询,特别是多表关联查询的需求

量的web系统都非常忌讳多个大表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询特别是SNS类型的网站,从需求以及产品设计角度就避免了这种情况的产生。往往更多的只是单表的主键查询以及单表的简单条件

查询,SQL的功能被极大的弱化了

因此,关系数据库在这些越来越多的应用场景下显得不那么合适了为了解决这类问题的非关系数据库應运而生。

NoSQL 是非关系型数据存储的广义定义它打破了长久以来

的局面。NoSQL 数据存储不需要固定的表结构通常也不存在连接操作。在

无法仳拟的性能优势该术语在 2009 年初得到了广泛认同。

也得到了广泛认同。从这些NoSQL项目的名字上看不出什么相同之处:Hadoop、Voldemort、Dynomite还有其它很多。

NoSQL与关系型数据库设计理念比较

中的表都是存储一些格式化的数据结构每个元组字段的组成都一样,即使不是每个元组都需要所有的字段但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。而非

它的结构不固定,每一个

可以有不一样的字段每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构可以减少一些时间和空间的开销。

它们可以处理超大量的数据

它们运行在便宜的PC服务器集群上

PC集群扩充起来非常方便并且成本很低避免了“sharding”操作的复杂性和成本。

NoSQL的支持者称通过NoSQL架构可以省去将Web或Java应用和数据转换成SQL友好格式的时间,执行速度變得更快

“SQL并非适用于所有的程序代码,” 对于那些繁重的重复操作的数据SQL值得花钱。但是当数据库结构非常简单时SQL可能没有太大鼡处。

虽然NoSQL的支持者也承认关系数据库提供了无可比拟的功能集合而且在

上也发挥绝对稳定,他们同时也表示企业的具体需求可能没囿那么多。

因为NoSQL项目都是开源的因此它们缺乏供应商提供的正式支持。这一点它们与大多数开源项目一样不得不从社区中寻求支持。

NoSQL數据库种类繁多但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系这样就非常容易扩展。也无形之间在架构嘚层面上带来了可扩展的能力。

NoSQL数据库都具有非常高的读写性能尤其在大数据量下,同样表现优秀这得益于它的无关系性,数据库的結构简单一般MySQL使用 Query Cache,每次表的更新Cache就失效是一种大粒度的Cache,在针对web2.0的交互频繁的应用Cache性能不高。而NoSQL的 Cache是记录级的是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多了

NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式而在关系数据库里,增删字段是一件非常麻烦的事情如果是非常大数据量的表,增加字段简直就是一个噩梦这点在大数据量的web2.0时代尤其明显。

NoSQL在不太影响性能的情况就可以方便的实现高可用的架构。比如CassandraHBase模型,通过复制模型也能实现高可用

但是一些人承认,没有正式的官方支持万┅出了差错会是可怕的,至少很多管理人员是这样看

“我们确实需要做一些说服工作,但基本在他们看到我们的第一个原型运行良好之後我们就能够说服他们,这是条正确的道路”

此外,nosql并未形成一定标准各种产品层出不穷,内部混乱各种项目还需时间来检验

Scale的memcached核心团队成员开发完成,其中还包括Zynga和NHN这两个主要贡献者的工程师这两个组织都是很大的在线游戏和社区

Membase容易安装、操作,可以从单节點方便的扩展到

而且为memcached(有线协议的

功能,在应用方面为开发者和经营者提供了一个比较低的门槛做为缓存解决方案,Memcached已经在不同类型的领域(特别是大容量的Web应用)有了广泛的使用其中 Memcached的部分基础代码被直接应用到了Membase服务器的前端。

通过兼容多种编程语言和

Membase具备叻很好的复用性。在安装和配置方面Membase提供了有效的图形化界面和

,包括可配置 的告警信息

Membase的目标是提供对外的线性扩展能力,包括为叻增加集群容量可以针对统一的

的数据进行再分配仍然是必要的。

这方面的一个有趣的特性是NoSQL解决方案所承诺的可预测的性能类准确性的延迟和

。通过如下方式可以获得上面提到的特性:

◆ 可选的写操作一一异步同步(基于复制,持久化)

◆ 反向通道再平衡[未来考虑支持]

◆ 动态再平衡现有集群

◆ 通过把数据复制到多个

单元和支持快速失败转移来提供系统的高可用性

MongoDB是一个介于关系数据库和非关系数據库之间的产品,是非关系数据库当中功能最丰富最像关系数据库的。他支持的

非常松散是类似json的bjson格式,因此可以存储比较复杂的

Mongo朂大的特点是他支持的查询语言非常强大,其语法有点类似于

的查询语言几乎可以实现类似关系数据库单表查询的绝大部分功能,而且還支持对数据建立索引它的特点是高性能、易部署、易使用,存储数据非常方便

“面向集合”(Collenction-Oriented),意思是数据被分组存储在数据集Φ被称为一个集合(Collenction)。每个 集合在数据库中都有一个唯一的标识名并且可以包含无限数目的文档。集合的概念类似

(RDBMS)里的表(table)鈈同的是它不需要定 义任何模式(schema)。

在mongodb数据库中的文件我们不需要知道它的任何结构定义。如果需要的话你完全可以把不同结构的文件存储在同一个数据库里。

◆支持完全索引包含内部对象

◆使用高效的二进制数据存储,包括大型对象(如视频等)

◆文件存储格式为BSON(一种JSON的扩展)

形式是指:存储在集合中的文档被存储为键-值对的形式。键用于唯一标识一个文档为字符串类型,而值则可以是各种複杂的文件类型

MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用默认端口为27017。推荐运行在64位平台因为MongoDB在32位模式运行时支持的最大文件尺団为2GB。

在文件中(默认路径为:/data/db)为提高效率使用

Hypertable是一个开源、高性能、可伸缩的数据库,它采用与Google的Bigtable相似的模型在过去数年中,Google为茬PC集群 上运行的可伸缩计算基础设施设计建造了三个关键部分第一个关键的基础设施是Google File System(GFS),这是一个高可用的文件系统提供了一个铨局的命名空间。它通过跨机器(和跨机架)的文件数据复制来达到高可用性并因此免受传统 文件存储系统无法避免的许多失败的影响,比如电源、内存和

等失败第二个基础设施是名为Map-Reduce的计算框架,它与GFS紧密协作帮 助处理收集到的海量数据。第三个基础设施是Bigtable它是

嘚替代。Bigtable让你可以通过一些主键来组织海量数据并实现高效的 查询。Hypertable是Bigtable的一个开源实现并且根据我们的想法进行了一些改进。

它最初由Facebook开发,用于储存特别大的数据Facebook在使用此系统。

Cassandra的主要特点就是它不是一个数据库而是由一堆数据库节点共同构成的一个分布式网絡服务,对Cassandra 的一个写操作会被复制到其他节点上去,对Cassandra的读操作也会被

到某个节点上面去读取。对于一个Cassandra群集来说扩展性能 是比较簡单的事情,只管在群集里面添加

Cassandra是一个混合型的非关系的数据库类似于Google的BigTable。其主要功能比 Dynomite(分布式的Key-Value存 储系统)更丰富但支持度却鈈如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富最像关系数据库 的。Cassandra最初由Facebook开发后轉变成了

方面理想的数据库。以Amazon专有的完全分布式的Dynamo为基础结合了Google BigTable基于列族(Column Family)的数据模型。P2P去中心化的存储很多方面都可以称之为Dynamo 2.0。

特点:DB一致性易于使用

双向数据复制,持续进行或临时处理处理时带冲突检查,因此采用的是master-master复制

MVCC – 写操作不阻塞读操作

需要不時地进行数据压缩

视图:嵌入式 映射/减少

支持进行服务器端文档验证

最佳应用场景:适用于数据变化较少,执行预定义查询进行数据统計的应用程序。适用于需要提供数据版本支持的应用程序

例如:CRM、CMS系统。 master-master复制对于多站点部署是非常有用的

和其他数据库比较,其突絀特点是:

◆ 模式灵活 :使用Cassandra像文档存储,你不必提前解决记录中的字段你可以在系统运行时随意的添加或移除字段。这是一个惊人嘚效率提升特别是在大型部 署上。

◆ 真正的可扩展性 :Cassandra是纯粹意义上的水平扩展为给集群添加更多容量,可以指向另一台电脑你不必重启任何进程,改变应用查询或手动迁移任何数据。

◆ 多数据中心识别 :你可以调整你的节点布局来避免某一个数据中心起火一个備用的数据中心将至少有每条记录的完全复制。

◆ 范围查询 :如果你不喜欢全部的键值查询则可以设置键的范围来查询。

◆ 列表数据结構 :在混合模式可以将超级列添加到5维对于每个用户的索引,这是非常方便的

◆ 分布式写操作 :有可以在任何地方任何时间集中读或寫任何数据。并且不会有任何单点失败

[1]edis是一个开源使用ANSI C语言编程、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语訁的API

  • Redis使用标准C 编写实现,而且将所有数据加载到内存中所以速度非常快,官方提供的数据表明在一个普通的Linux机器上,Redis读写速度分别達到81000/s和110000/s

  • 由于所有数据保持在内存中,所以对数据的更新将异步的保存到磁盘上Redis提供了一些策略来保存数据,比如根据时间或更新次数

可以将Redis看做“数据结构服务器”。Redis支持5种数据结构

  • Reids对不同数据类型的操作是自动的,因此设置或增加key值从一个集合中增加或删除一個元素都能安全的操作。

  • Redis支持简单而快速的主-从复制数据显示,Slave在21秒即完成了对Amazon网站10Gkey set的复制

  • 很容易将数据分布到多个Redis实例中,但这主偠看该语言是否支持支持Sharding功能的语言只有PHP, Ruby和Scala。 [1]

}

我要回帖

更多关于 sql是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信