1. nosql
Nosql = Not Only sql,泛指非关系型的数据库。Nosql数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。Nosql数据库没有标准的查询语言(sql),许多Nosql数据库都有REST式的数据接口或者查询API。
使用场景:
1、数据模型比较简单;
2、需要灵活性更强的IT系统;
4、不需要高度的数据一致性;
5、对于给定key,比较容易映射复杂值的环境。
2. nosql 数据库4大分类
名称 | 描述 | 优点/缺点 |
键值(Key-Value)存储数据库 |
主要会使用到一个哈希表 如redis 场景: 内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。 适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。 |
优点:查询速度快 缺点:数据无结构化,通常只被当作字符串或者二进制数据 |
列存储数据库 |
通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列 如:HBase 场景:分布式的文件系统 适用于偏好BigTable:)并且需要对大数据进行随机、实时访问的场合 |
查找速度快,可扩展性强,更容易进行分布式扩展; 功能相对局限 |
文档型数据库 |
可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高 如:CouchDB,MongoDb. 国内也有文档型数据库SequoiaDB,已经开源 场景:Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容) |
数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构; 查询性能不高,而且缺乏统一的查询语法。 |
图形(Graph)数据库 |
使用灵活的图形模型,并且能够扩展到多个服务器上。 如:Neo4J,InfoGrid,Infinite Graph. 场景:社交网络,推荐系统等。专注于构建关系图谱 |
利用图结构相关算法。比如最短路径寻址,N度关系查找等; 很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。 |
3. 多种nosql数据库对比
4. 内存数据库
内存数据库从范型上可以分为关系型内存数据库和键值型内存数据库。在实际应用中内存数据库主要是配合oracle或MysqL等大型关系数据库使用,关注性能。
作用类似于缓存,并不注重数据完整性和数据一致性。基于键值型的内存数据库比关系型更加易于使用,性能和可扩展性更好,因此在应用上比关系型的内存数据库使用更多。
作用类似于缓存,并不注重数据完整性和数据一致性。基于键值型的内存数据库比关系型更加易于使用,性能和可扩展性更好,因此在应用上比关系型的内存数据库使用更多。
更多参考: