提纲 3.1 NoSQL简介 ● 3.2 NoSQL兴起的原因 3.3 NoSQL与关系数据库的 比较 3.4 NoSQL的四大类型 3.5 NoSQL的三大基石 3.6从NoSQL到NewSQL数 据库 ·3.7文档数据库MongoDB 学以致用 DATABASE@UESTC 用以促学
学以致用 DATABASE@UESTC 用以促学 提纲 • 3.1 NoSQL简介 • 3.2 NoSQL兴起的原因 • 3.3 NoSQL与关系数据库的 比较 • 3.4 NoSQL的四大类型 • 3.5 NoSQL的三大基石 • 3.6 从NoSQL到NewSQL数 据库 • 3.7 文档数据库MongoDB
3.1 NoSQL简介 概念演变 Not only SQL 最初表示“反SQL”运动 现在表示关系和非关系型数据库各有优缺点 用新型的非关系数据库取代关系数据库 彼此都无法互相取代 通常,NoSQL数据库具有以下几个特点: (1)高水平扩展能力 (2)灵活的数据模型 (3)最终一致性 (4)开源 (5)分布式 http://nosql-database.org/ 学以致用 DATABASE@UESTC 用以促学
学以致用 DATABASE@UESTC 用以促学 3.1 NoSQL简介 通常,NoSQL数据库具有以下几个特点: (1)高水平扩展能力 (2)灵活的数据模型 (3)最终一致性 (4)开源 (5)分布式 http://nosql-database.org/ 最初表示“反SQL”运动 用新型的非关系数据库取代关系数据库 Not only SQL 现在表示关系和非关系型数据库各有优缺点 彼此都无法互相取代 概念演变
3.2 NoSQL兴起的原因 ☒ 1、关系数据库已经无法满足Web2.0的需求。主要表现在以下 几个方面: (1)无法满足高效率存储和访问的需求 (2)无法满足数据高并发读写的需求 (3)无法满足高可扩展性和高可用性的需求 1分钟时间: 。新浪可以发送2万条微博 ●苹果可以下载4.7万次应用 ●淘宝可以卖出6万件商品 。人人网可以发生30万次访问 ● 百度可以产生9①万次搜素查询 学以致用 DATABASE@UESTC 用以促学
学以致用 DATABASE@UESTC 用以促学 3.2 NoSQL兴起的原因 1、关系数据库已经无法满足Web2.0的需求。主要表现在以下 几个方面: (1)无法满足高效率存储和访问的需求 (2)无法满足数据高并发读写的需求 (3)无法满足高可扩展性和高可用性的需求
3.2 NoSQL兴起的原因 ySQL集群是否可以完全解决问题? 复杂性:部署、管理、配置很复杂 牌喇 数据库复制:MySQL主备之间采用复制方 式,只能是异步复制,当主库压力较大时可 能产生较大延迟,主备切换可能会丢失最后 一 部分更新事务,这时往往需要人工介入, 备份和恢复不方便 扩容问题:如果系统压力过大需要增加新的 机器,这个过程涉及数据重新划分,整个过 程比较复杂,且容易出错 动态数据迁移问题:如果某个数据库组压力 物助 物凯 物理肌 物理 过大,需要将其中部分数据迁移出去,迁移 过程需要总控节点整体协调,以及数据库节 点的配合。这个过程很难做到自动化 学以致用 DATABASE@UESTC 用以促学
学以致用 DATABASE@UESTC 用以促学 3.2 NoSQL兴起的原因 •复杂性:部署、管理、配置很复杂 •数据库复制:MySQL主备之间采用复制方 式,只能是异步复制,当主库压力较大时可 能产生较大延迟,主备切换可能会丢失最后 一部分更新事务,这时往往需要人工介入, 备份和恢复不方便 •扩容问题:如果系统压力过大需要增加新的 机器,这个过程涉及数据重新划分,整个过 程比较复杂,且容易出错 •动态数据迁移问题:如果某个数据库组压力 过大,需要将其中部分数据迁移出去,迁移 过程需要总控节点整体协调,以及数据库节 点的配合。这个过程很难做到自动化 MySQL集群是否可以完全解决问题?
3.2 NoSQL兴起的原因 2、“One size fits all”模式很难适用于截然不同的业务场景 关系模型作为统一的数据模型既被用于数据分析,也被用于 在线业务。但这两者一个强调高吞吐,一个强调低延时,己 经演化出完全不同的架构。用同一套模型来抽象显然是不合 适的 √Hadoop就是针对数据分析 √MongoDB、Redis等是针对在线业务,两者都抛弃了关系模 型 学以致用 DATABASE@UESTC 用以促学
学以致用 DATABASE@UESTC 用以促学 3.2 NoSQL兴起的原因 2、“One size fits all”模式很难适用于截然不同的业务场景 关系模型作为统一的数据模型既被用于数据分析,也被用于 在线业务。但这两者一个强调高吞吐,一个强调低延时,已 经演化出完全不同的架构。用同一套模型来抽象显然是不合 适的 Hadoop就是针对数据分析 MongoDB、Redis等是针对在线业务,两者都抛弃了关系模 型