您当前的位置:首页 > 互联网教程

如何选择NoSQL数据库

发布时间:2025-05-20 07:18:10    发布人:远客网络

如何选择NoSQL数据库

一、如何选择NoSQL数据库

NoSQL,指的是非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的

SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。

),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数

据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。

从这一新兴技术中选择一款正确的NoSQL数据库是非常具有挑战性的。比一下网建议在选择时考虑以下因素:

发控制指的是当多个用户同时更新运行时,用于保护数据库完整性的各种技术。并发机制不正确可能导致脏读、幻读和不可重复读等此类问题。并发控制的目的是保

证一个用户的工作不会对另一个用户的工作产生不合理的影响。在某些情况下,这些措施保证了当用户和其他用户一起操作时,所得的结果和她单独操作时的结果是

一样的。在另一些情况下,这表示用户的工作按预定的方式受其他用户的影响。

就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。

封锁是一次只允许一个用户读取或修改的一种机制,是实现并发控制的一个非常重要的技术。

Multi-Version Concurrency Control多版本并发控制,维持一个数据的多个版本使读写操作没有冲突。MVCC优化了数据库并发系统,使系统在有大量并发用户时得到最高的性能,并且可以不用关闭服务器就直接进行热备份。

数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久

性(Durability)。一个支持事务(Transaction)的数据库系统,必需要具有这四种特性,否则在事务过程(Transaction

processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。

数据库镜像是DBMS根据DBA的要求,自动把整个数据库或其中的关键数据复制到另一个磁盘上,每当主数据库更新时,DBMS会自动把更新后的数据复制过去,即DBMS自动保证镜像数据与主数据的一致性。

指的是数据的物理特性怎样被存储在数据库中。

磁盘数据被存储在硬盘驱动器里;

GFS或谷歌文件系统是一个由谷歌开发的专有的分布式文件系统;

Hadoop是Apache软件框架,免费许可下支持数据密集型分布式应用程序;

Amazon S3通过Web服务接口提供存储;

全称是“Berkeley DB”,它是MySQL具有事务能力的表类型,由Sleepycat

Software开发。BDB表类型提供了MySQL用户长久期盼的功能,即事务控制能力。在任何RDBMS中,事务控制能力都是一种极其重要和宝贵的功

能。事务控制能力使得我们能够确保一组命令确实已经全部执行成功,或者确保当任何一个命令出现错误时所有命令的执行结果均被退回。

实现语言会影响数据库的发展速度。典型的NoSQL数据库是用低级语言如C/ C++编写的。另一方面,那些更高层次的语言如Java,使自定义更容易。

实现语言有:C, C++, Erlang, Java, Python

考虑下列哪一个特点对你的数据库是最重要的:

下面这些许可证是一个不同的开放源码许可的形式:

IDPL:最初的开发者的公共许可证

存储类型是NoSQL数据库最大的不同,是决定使用哪款数据库的一个首要指标。

关键字:支持get、put和删除操作

按列存储:相对于传统的按行存储,数据集成容易多了

面向文件系统:存储像是JSON或XML这样的结构化文件,很容易就能从面向对象软件中获取数据。

二、数据库的类型都有哪些

数据库有两种类型,分别是关系型数据库与非关系型数据库。

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。

Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等等。

NoSql、Cloudant、MongoDb、redis、HBase等等。

1、性能高:NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高。

2、可扩展性好:同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。

1、可以复杂查询:可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。

2、事务支持良好:使得对于安全性能很高的数据访问要求得以实现。

三、nosql数据库的三大理论基石不包括

相关产品: Redis、Riak、SimpleDB、Chordless、Scalaris、Memcached.

主要应用:内容缓存,处理大量数据的高负载访问,也用于系统日志。

优点:查找速度快,大量操作时性能高。

相关产品: BigTable、HBase、Cassandra、HadoopDB、GreenPlum、PNUTS.

主要应用:分布式数据的储存与管理。

优点:查找速度快,可扩展性强,容易进行分布式扩展。

相关产品:MongoDB、CouchDB、ThruDB、CloudKit、Perservere、Jackrabbit.

主要应用: web应用,管理面向文档的数据或者类似的半结构化数据。

优点:数据结构灵活,表结构可变,复杂性低。

缺点:查询效率低,且缺乏统一的查询语言。

相关产品: Neo4J、OrientDB、InfoGrid、GraphDB.

主要应用:复杂,互连接,低结构化的图结构场合,专注构建关系图谱。

优点:利用图结构相关算法,可用于构建复杂的关系图谱。