泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储。 (例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。 2 能干嘛 1. 易扩展 NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。 数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。 2. 大数据量高性能 NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。 这得益于它的无关系性,数据库的结构简单。 一般MySQL使用Query Cache,每次表的更新Cache就失效,是一种大粒度的Cache, 在针对web2.0的交互频繁的应用,Cache性能不高。而NoSQL的Cache是记录级的, 是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多了 redis每秒钟写8万,读11万次 3. 多样灵活的数据模型 NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里, 增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦 4. 传统RDBMS VS NOSQL RDBMS vs NoSQL RDBMS - 高度组织化结构化数据 - 结构化查询语言(SQL) - 数据和关系都存储在单独的表中。 - 数据操纵语言,数据定义语言 - 严格的一致性 - 基础事务 NoSQL - 代表着不仅仅是SQL - 没有声明性查询语言 - 没有预定义的模式 -键 - 值对存储,列存储,文档存储,图形数据库 - 最终一致性,而非ACID属性 - 非结构化和不可预知的数据 - CAP定理 - 高性能,高可用性和可伸缩性 3 去哪下 memcached:但就高速缓存一件事而言,最快的还是memcached redis:但论数据类型丰富,redis和tair(阿里、美团)更出色 Mongodb 4 怎么玩 KV——键值对 Cache——缓存 Persistence——持久化 3. 互联网数据的3V和3高及当下的NoSQL经典应用 (1)3V和3高 3V 海量Volume 多样Variety 实时Velocity 3高 高并发 高可扩——横向追加CPU或机器,构建阵列或者集群。 高性能 (2)当下的NoSQL经典应用 一个NoSql的应用中各方面问题的解决方案要点:这里是从别的地方看到一个讲稿中的例子,觉得不错,所以把提纲列在这里,自己就不写了。 1趋冷的数据、不变的数据,如商品的基本信息,存放在关系型数据库中。 2商品描述、详情、评价信息(多文字类),存放在MongoDB里。 多文字信息描述类,IO读写性能变差 文档数据库MongDB中 3 商品的图片 商品图片展现类 分布式的文件系统中 淘宝自己的TFS Google的GFS Hadoop的HDFS 4 商品的关键字 搜索引擎,淘宝内用 ISearch 5 商品的波段性的热点高频信息 内存数据库 tair、Redis、Memcache 例如,情人节期间,电商网站的巧克力、玫瑰等会成为热搜词汇,这时候就将其放在redis等缓存中 6 商品的交易、价格计算、积分累计 外部系统,外部第3方支付接口 支付宝 (3)总结大型互联网应用(大数据、高并发、多样数据类型)的难点和解决方案 难点 数据类型多样性 数据源多样性和变化重构 数据源改造而数据服务平台不需要大面积重构 解决办法 EAI和统一数据平台服务层 阿里、淘宝干了什么?UDSL(统一数据平台服务层)
4. NoSQL数据模型简介 (1)以一个电商客户、订单、订购、地址模型来对比下关系型 (2)数据库和非关系型数据库 1 传统的关系型数据库你如何设计? ER图(1:1/1:N/N:N,主外键等常见) 2 nosql你如何设计 什么是BSON:BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON, 它和JSON一样,支持内嵌的文档对象和数组对象 给学生用BSon画出构建的数据模型 3 两者对比,问题和难点 为什么上述的情况可以用聚合模型来处理 高并发的操作是不太建议有关联查询的, (3)互联网公司用冗余数据来避免关联查询 分布式事务是支持不了太多的并发的 按照BSon查询 (4)聚合模型 KV键值 bson 列族 顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩, 对针对某一列或者某几列的查询有非常大的IO优势。
5. NoSQL数据库的四大分类 (1)KV键值:典型介绍 新浪:BerkeleyDB+redis 美团:redis+tair 阿里、百度:memcache+redis (2)文档型数据库(bson格式比较多):典型介绍 CouchDB MongoDB MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 (3)列存储数据库 Cassandra, HBase 分布式文件系统 (4)图关系数据库 它不是放图形的,放的是关系比如:朋友圈社交网络、广告推荐系统 社交网络,推荐系统等。专注于构建关系图谱 Neo4J, InfoGrid (5) 四者对比
6. 在分布式数据库中CAP原理CAP+BASE 1. 传统的ACID分别是什么 A (Atomicity) 原子性 C (Consistency) 一致性 I (Isolation) 独立性 D (Durability) 持久性 关系型数据库遵循ACID规则 事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性: 1、A (Atomicity) 原子性 (责任编辑:admin) |