常见NoSQL的特点分析与比较
3.分类:
3.1(最常见的键值存储)
a.临时性的:保存在内存中,可以进行快速的保存和读取操作, 数据有可能丢失
b.永久性:在磁盘上保存数据,可以进行快读的读写(没有内存中快),数据不会丢失
c.两者兼具:内存和硬盘同时保存数据,可以进行快速的读写操作, 硬盘上有数据不会丢失, 适合处理数组类型的数据
3.2(面向文档的(MongoDB,CouchDB))
a.存储方式:没有表结构,类似于jason。
b.可以进行复杂的查询条件
3.3(面向列的数据库Hbase)
a.关系型数据库是面向行的,对少量行进读写,而面向列的数据库,对大量行少数列进行读写,对所有特定的列进行通时更新。
b.高拓展性(特别是写入)
c.应用十分困难
d.对大量数据更新和查询有优势
3.1详解:memcached(临时性键值存储):
a.高速的响应
b.作为高速缓存使用(通过关系型数据库建立索引也可以获得高速响应):在处理大量的数据时候,他可以当作关系型数据库中间量,充当缓存来获得高速的响应速度,通过快速的读取里面的数据来弥补可能丢掉数据的可能性。
c.存储方式:散列表方式存储在内
d.通信:简单的文本协议,对数据的操作就是类似于保存和键值相对应的值,只能对字符类型数据进行操作(其它格式的数据可以利用jason来处理进行格式化,这样就可以跨平台传输)。
e.对数据操作简单,
f.memcached增加服务器时的经典算法:一致性散列:
g.缺点:因为他的数据时在内存中的,1.所以容易造成数据的丢失。解决方法:只用它来解决数据的拷贝,而把原始的数据放在安全的地方。2.web服务用的多(国外的网站基本都会引入memcached),
两种情况下它的威力大:1.有些网页需要执行一些好使的SQL文,响应很慢,有些网页访问率高,负载大,(关系型数据库解决这种问题的方法:增加临时表,批处理)
Tokyo Tyrant(永久性键值存储,是存储在硬盘上的)
1.优势:他的数据虽然是存储在银盘上的,但是它数据的操作硬盘的io处理无关,可以实现高速的访问(而且还不用担心数据会丢失)
2.它还有一个优点就是它能根据数据的类型选着存储的结构,所以它在查询时就有了自己优势,不仅能像关系型数据库范围查询还能进行key—value进行完全一致条件的查询。
3.数据类型:a.缓存数据库 ,以key-value形式来存储 b.
4.它把复制作为作为一项标准的功能
5.缺点:安装难度大(ruby)
Redis(临时性/持久性键值存储)
1.快速处理数组形式的数据
2.通过虚拟内存可以和操作系统进行互换结构,通过内存中的保存的所有数据的键来实现高效的处理。
3.引用;github, 微笑直播的观众人数统计
4,.应用:时间线形式的web应用
5.适合处理时间序列的数据
MongoDB(高性能和可扩展)
1.面向文档
2.关系型数据库的结构是事先定义好的,碰到不需要改变表结构的的信息存储的时候,还是挺可观的,但是如果在后来的处理中碰到了要改变表结构才能存储的数据,那时候,处理起来就比较麻烦了。
3.普通的关系型数据库实现(反复的表结构变换),可以通过json把数据进行系列化,然后保存到表格中,然后读取数据的时候反系列化,然后筛选出自己需要的数据也可以解决,但是这下来时间开销就会增大。
3。不需要定义表结构的数据库,可以根据KEY值可以进行关系数据库那样的查询亦可以添加索引。
4.数据的保存形式:BSON(JSON的二进制产物)把值和键进行制关联。
5,他不能进行jion查询,但是它可以通过嵌套达到同样的效果。
6.优势:没有表结构,可以灵活的指定查询条件。比如正则表达式查询或者对特定数组元素的查询都可以
7.实例应用:问卷调查数据的保存
几种基本的NoSQL的数据库的性能验证:
NoSQL化的关系型数据库
1.将MySQL数据库NoSQL化的HandlerSocket的方法:
特征:
1.高速地完成单纯的数据的插入和读取处理
2.可以使用SQL和Handlersocket对同一数据访问
3.可以通过协议独立访问MySQL的数据
4.不支持事物处理
handlesocket机构图:
.png)
它可以直接访问Handler的接口,但是一般的都要通过SQL层来实现访问(免去了解析SQL和锁表和解锁的处理)
不足:只能支持带有索引的查询数据,
总结:插入数据部分:比一般的关系型数据库快,虽然没memcached快。读取速度可以和Redis相仿
Berkeley DB
1.存储形式:key-多value形式
2.不支持网络访问,程序是通过进程内的API访问的
3.架构及其简单,
4,介于内存数据库和关系数据库之间
选用四种算法:B+数算法:平衡的二叉树,按其关键字有序存储,和HASH算法
1.访问速度快。
2.节约硬盘空间
3.大多数系统都用它,支持多进程和事物
4.有XMl接口,可以存储XML数据
5,兼容一些老的Unix数据库(DBM)
常见NoSQL的特点分析与比较的更多相关文章
- 常见排序算法总结分析之选择排序与归并排序-C#实现
本篇文章对选择排序中的简单选择排序与堆排序,以及常用的归并排序做一个总结分析. 常见排序算法总结分析之交换排序与插入排序-C#实现是排序算法总结系列的首篇文章,包含了一些概念的介绍以及交换排序(冒泡与 ...
- 【性能测试】常见的性能问题分析思路(二)案例&技巧
上一篇介绍了性能问题分析的诊断的基本过程,还没看过的可以先看下[性能测试]常见的性能问题分析思路-道与术,精炼总结下来就是,当遇到性能问题的时候,首先分析现场,然后根据现象去查找对应的可能原因,在通过 ...
- NoSQL注入的分析和缓解
本文要点介绍: 1.了解针对NoSQL的新的安全漏洞 2.五类NoSQL攻击手段,比如重言式.联合查询.JavaScript 注入.背负式查询(Piggybacked queries),以及跨域违规 ...
- 程序员笔记|常见的Spring异常分析及处理
一.前言 相信我们每个人在SpringMVC开发中,都遇到这样的问题:当我们的代码正常运行时,返回的数据是我们预期格式,比如json或xml形式,但是一旦出现了异常(比如:NPE或者数组越界等等),返 ...
- 主流NoSQL数据库的分析与选择
一因为新的数据项目的数据量级较大,因此考虑将mysql替换更高性能的数据库. 介绍一下NoSQL(不仅仅是关系型数据库)的不同种类和其擅长的业务. NoSQL的一个比较明显的特点是适用于现代大数据的存 ...
- 【FAQ】接入HMS Core推送服务,服务端下发消息常见错误码原因分析及解决方法
HMS Core推送服务支持开发者使用HTTPS协议接入Push服务端,可以从服务器发送下行消息给终端设备.这篇文章汇总了服务端下发消息最常见的6个错误码,并提供了原因分析和解决方法,有遇到类似问题的 ...
- 几种常见 容器 比较和分析 hashmap, map, vector, list ...hash table
list支持快速的插入和删除,但是查找费时; vector支持快速的查找,但是插入费时. map查找的时间复杂度是对数的,这几乎是最快的,hash也是对数的. 如果我自己写,我也会用二叉检索树,它在 ...
- Java常见内存溢出异常分析(OutOfMemoryError)
原文转载自:http://my.oschina.net/sunchp/blog/369412 1.背景知识 1).JVM体系结构 2).JVM运行时数据区 JVM内存结构的相关可以参考: http:/ ...
- js基础梳理-关于this常见指向问题的分析
首先,依然回顾<js基础梳理-究竟什么是执行上下文栈(执行栈),执行上下文(可执行代码)?>中的 3.执行上下文的生命周期 3.1 创建阶段 生成变量对象(Variable object, ...
随机推荐
- Environment.SpecialFolder.CommonApplicationData
private void button1_Click(object sender, EventArgs e) { var path=Environment.GetFolderPath(Environm ...
- codeforces #240 div 2
A:语文题,估计大家都会, B题:假如答案是ans,求最大的ans,是w*a/b==(w-ans)*a/b; 明显的二分,可是我的二分写的没水准,还有是直接做: #include<string. ...
- 网页出现scanstyles does nothing in Webkit / Mozilla的解决方法
今天ytkah要验证一些百度服务,那边的客服MM说她用ie浏览器打开网页出现"scanstyles does nothing in Webkit / Mozilla / Opera" ...
- Unity 处理策划的 Excel
很多时候我们需要使用策划的Excel表来做游戏的静态数据配置, 而不是采用自己定义的xml或者U3D的scriptobject. 因为很多数据都是策划处理的,而策划最喜欢的就是excel,也只会用这个 ...
- MariaDB Galera Cluster集群
一.MariaDB Galera Cluster概要: 1.简述: MariaDB Galera Cluster 是一套在mysql innodb存储引擎上面实现multi-master及数据实时同步 ...
- Java package详解
Java引入包(package)机制,提供了类的多层命名空间,用于解决类的命名冲突.类文件管理等问题.Java允许将一组功能相关的类放在同一个package下,从而组成逻辑上的类库单元.如果希望把一个 ...
- 【OpenCV入门教程之二】 一览众山小:OpenCV 2.4.8组件结构全解析
转自: http://blog.csdn.net/poem_qianmo/article/details/19925819 本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:ht ...
- HDU 5151 Sit sit sit 区间DP + 排列组合
Sit sit sit 问题描述 在一个XX大学中有NN张椅子排成一排,椅子上都没有人,每张椅子都有颜色,分别为蓝色或者红色. 接下来依次来了NN个学生,标号依次为1,2,3,...,N. 对于每个学 ...
- Android 注入详解
Android下的注入的效果是类似于Windows下的dll注入,关于Windows下面的注入可以参考这篇文章Windows注入术.而Android一般处理器是arm架构,内核是基于linux,因此进 ...
- hdu1715
http://acm.hdu.edu.cn/showproblem.php?pid=1715 模板大数: #include <stdio.h> #include <string.h& ...