扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Web1.0的时代,数据访问量很有限,用一夫当关的高性能的单点服务器可以解决大部分问题。
目前成都创新互联已为上千的企业提供了网站建设、域名、虚拟空间、绵阳服务器托管、企业网站设计、香格里拉网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
随着Web2.0的时代的到来,用户访问量大幅度提升,同时产生了大量的用户数据。加上后来的智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库。
NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。
Memcache Memcache Redis Redis MongoDB MongoDB 列式数据库 列式数据库 Hbase Hbase
HBase是Hadoop项目中的数据库。它用于需要对大量的数据进行随机、实时的读写操作的场景中。
HBase的目标就是处理数据量非常庞大的表,可以用普通的计算机处理超过10亿行数据,还可处理有数百万列元素的数据表。
Cassandra Cassandra
Apache Cassandra是一款免费的开源NoSQL数据库,其设计目的在于管理由大量商用服务器构建起来的庞大集群上的海量数据集(数据量通常达到PB级别)。在众多显著特性当中,Cassandra最为卓越的长处是对写入及读取操作进行规模调整,而且其不强调主集群的设计思路能够以相对直观的方式简化各集群的创建与扩展流程。
主要应用:社会关系,公共交通网络,地图及网络拓谱(n*(n-1)/2)
NoSQL太火,冒出太多产品了,保守估计也成百上千了。
互联网公司常用的基本集中在以下几种,每种只举一个比较常见或者应用比较成功的例子吧。
1. In-Memory KV Store : Redis
in memory key-value store,同时提供了更加丰富的数据结构和运算的能力,成功用法是替代memcached,通过checkpoint和commit log提供了快速的宕机恢复,同时支持replication提供读可扩展和高可用。
2. Disk-Based KV Store: Leveldb
真正基于磁盘的key-value storage, 模型单一简单,数据量不受限于内存大小,数据落盘高可靠,Google的几位大神出品的精品,LSM模型天然写优化,顺序写盘的方式对于新硬件ssd再适合不过了,不足是仅提供了一个库,需要自己封装server端。
3. Document Store: Mongodb
分布式nosql,具备了区别mysql的最大亮点:可扩展性。mongodb 最新引人的莫过于提供了sql接口,是目前nosql里最像mysql的,只是没有ACID的特性,发展很快,支持了索引等特性,上手容易,对于数据量远超内存限制的场景来说,还需要慎重。
4. Column Table Store: HBase
这个富二代似乎不用赘述了,最大的优势是开源,对于普通的scan和基于行的get等基本查询,性能完全不是问题,只是只提供裸的api,易用性上是短板,可扩展性方面是最强的,其次坐上了Hadoop的快车,社区发展很快,各种基于其上的开源产品不少,来解决诸如join、聚集运算等复杂查询。
Microsoft SQL Server 2000 简答题及其答案
1.在安装SQL Server 2000时,“仅客户端工具”、“服务器和客户端工具”及“仅连接”等安装定义有什么差别?
答:仅客户端工具:仅安装客户端工具。服务器和客户端工具:同时安装服务器和客户端工具。仅连接:仅安装客户端连接。
2.一个数据库中包含哪几种文件?
答:主数据库文件,辅助数据文件,事务日志文件。
3.事务文件和数据文件分开存放有什么好处?
答:因为利用事务日志备份可以将数据库恢复到特定的即时点(如输入不想要的数据之前的那一点)或故障发生点。在媒体恢复策略中应考虑利用事务日志备份。
4.什么是批处理?使用批处理有何限制?
答:包含一个或多个T-SQL语句的组,从应用程序将一次性发送到SQL Server执行,SQL Server批处理语句作为整体编译成一个可执行单元。
限制:如不能够在同一个批处理中更改表,然后引用新列。如在一个批处理程序中,有两条语句。第一条语句用来在一张表中插入一个字段,如在User表中插入员工的出生年月;第二条语句则用来引用这个列,如根据身份证号码来推算出这个员工的出身年月并把这个值赋值给这个第一条语句创建的出身年月字段。
5.数据检索时,COMPUTE和COMPUTE BY产生的结果有何不同?
答:Compute:第一个为明细行 第二个为聚合函数的合计 Compute by:第一个为明细行第二个为聚合函数的小计
6.什么是索引?索引分为哪两种?各有什么特点?
答:1、数据库中的索引与书籍中的目录类似。在一本书中,利用目录可以快速查找所需信息,无须阅读整本书。在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据。 2、聚集索引和非聚集索引。
3、聚集索引的特点:行的物理位置和行在索引中的位置是相同的,每个表只能有一个聚集索引,聚集索引的平均大小大约为表大小的5%左右。
非聚集索引特点:若未指定索引类型,则默认为非聚集索引,叶节点页的次序和表的物理存储次序不同,每个表最多可以有249个非聚集索引,在非聚集索引创建之前创建聚集索引。
7.创建索引有什么优点和缺点?
答:优点:索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。
使用索引查找数据,无需对整表进行扫描,可以快速找到所需数据。
缺点:索引需要占用数据表以外的物理存储空间。创建索引和维护索引要花费一定的时间。当对表进行更新操作时,索引需要被重建,这样降低了数据的维护速度。
8.什么是视图?使用视图的优点和缺点是什么?
答:视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
优点:1隐蔽数据库的复杂性2控制用户提取数据3简化数据库用户管理 4简化查询
缺点:1性能:SQL Server必须把视图的查询转化成对基本表的查询,如果这个视图是由,一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,SQL Server也,把它变成一个复杂的结合体,需要花费一定的时间。2修改限制:当用户试图修改视图的某些行时,SQL Server必须把它转化为对基本,表的某些行的修改。对于简单视图来说,这是很方便的,但是,对于比较复杂的,视图,可能是不可修改的。
9. 修改视图中的数据会受到哪些限制?
答:1、必须有权限 2、单表视图直接改
3、多表可在视图中定义 instead of 触发器.
4、对由多表连接成的视图修改数据时,不能同时影响一个以上的基表,也不能删除视图中的数据
5、对视图上的某些列不能修改,这些列是:计算列,内置函数列和行集合函数列
6、对具有NOT NULL 的列进行修改时可能会出错。通过视图修改或者插入数据时,必须保证未显示的具有NOT NULL 属性的列有值,可以是默认值,IDENTITY 等,否则不能像视图中插入数据行。
7、如果某些列因为规则或者约束的限制不能接受从视图插入的数据时,则插入数据可能会失败
8、删除基表并不删除视图,建议采用与表明显不同的名字命名规则
10. 什么是数据完整性?如果数据库不实施数据完整性会产生什么结果?
答:数据完整性是指数据的精确性和可靠性。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。
11.数据完整性有哪几类?如何实施?
答:1、数据完整性分为四类:实体完整性、域完整性、参照完整性、用户定义的完整性。
2、数据库采用多种方法来保证数据完整性,包括外键、束约、规则和触发器。系统很好地处理了这四者的关系,并针对不同的具体情况用不同的方法进行,相互交叉使用,相补缺点。
12. 什么是主键约束?什么是惟一约束?两者有什么区别?
答:主键约束:有一列或列的组合,其值能唯一的标识表中的每一行。
唯一约束:不允许数据库表在指定列上具有相同的值,但允许有空值。
区别:一个表可以定义多个唯一约束,只能定义一个主键约束;空值得列上可以定义唯一约束,不能定义主键约束。
13.什么是外键,怎样建立外键约束?
答:外键是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。
14.什么是存储过程?使用存储过程有什么好处?
答:1、是存储在服务器上的 Transact-SQL 语句的命名集合,是封装重复性任务的方法,支持用户声明变量、条件执行以及其他强有力的编程特性。
2、存储过程封装了商务逻辑,确保一致的数据访问和修改。若规则或策略有变化,则只需要修改服务器上的存储过程,所有的客户端就可以直接使用
屏蔽数据库模式的详细资料。用户不需要访问底层的数据库和数据库内的对象
提供了安全性机制。用户可以被赋予执行存储过程的权限,而不必在存储过程引用的所有对象上都有权限
改善性能。预编译的 Transact-SQL 语句,可以根据条件决定执行哪一部分
减少网络通信量。客户端用一条语句调用存储过程,就可以完成可能需要大量语句才能完成的任务,这样减少了客户端和服务器之间的请求/回答包
15.什么是触发器?触发器分有什么作用?
答:触发器是一类特殊的存储过程,不能被直接调用,也不传递或接受参数
作用:1、维护不可能在表创建时刻通过声明性约束进行的复杂的完整性约束限制。
2、通过记录所进行的修改以及谁进行了修改来审计表中的信息。
3、当表被修改的时候,自动给其他需要执行操作的程序发信号。
答案:A
1.文档型数据库
作为最受欢迎的NoSQL产品,文档型数据库MongoDB当仁不让地占据了第一的位置,同时它也是所有NoSQL数据库中排名最靠前的产品(总排行榜第七名)。Apache基金会的CouchDB排在第二,基于.Net的数据库RavenDB排在第三,Couchbase排在第四。
2.键值(Key-value)数据库
键值(Key-value)数据库是NoSQL领域中应用范围最广的,也是涉及产品最多的一种模型。从最简单的BerkeleyDB到功能丰富的分布式数据库Riak再到Amazon托管的DynamoDB不一而足。
在键值数据库流行度排行中,Redis不出意外地排名第一,它是一款由Vmware支持的内存数据库,总体排名第十一。排在第二位的是Memcached,它在缓存系统中应用十分广泛。排在之后的是Riak、BerkeleyDB、SimpleDB、DynamoDB以及甲骨文的Oracle NoSQL数据库。值得注意的是,Oracle NoSQL数据库上榜不久,得分已经翻番,上升势头非常迅猛。
3. 列式存储
列式存储被视为NoSQL数据库中非常重要的一种模式,其中Cassandra流行度最高,它已经由Facebook转交给到Apache进行管理,同时Cassandra在全体数据库排名中排在第十位,紧随MongoDB成为第二受欢迎的NoSQL数据库。基于Hadoop的Hbase排在第二位,Hypertable排在第三。而Google的BigTable并未列入排名,原因是它并未正式公开。
NoSQL,是not only sql,是非关系数据库,不同于oracle等关系数据库。hadoop,是分布式解决方案,即为Mapreduce(计算的)和HDFS(文件系统),使用Hadoop和NoSQL可以构造海量数据解决方案。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流