全球网站制作做网站虚拟主机价格
- 作者: 五速梦信息网
- 时间: 2026年03月21日 09:53
当前位置: 首页 > news >正文
全球网站制作,做网站虚拟主机价格,北京互联网网站建设,平面设计行业市场分析NoSQL概述 目录 一、为什么用NoSQL 二、什么是NoSQL 三、经典应用分析 四、N o S Q L 数 据 模 型 简 介 五、NoSQL四大分类 六、CAP BASE 一、为什么用NoSQL 1、单机MySQL的美好年代 在90年代#xff0c;一个网站的访问量一般不大#xff0c;用单个数据库完全可以轻松应… NoSQL概述 目录 一、为什么用NoSQL 二、什么是NoSQL 三、经典应用分析 四、N o S Q L 数 据 模 型 简 介 五、NoSQL四大分类 六、CAP BASE 一、为什么用NoSQL 1、单机MySQL的美好年代 在90年代一个网站的访问量一般不大用单个数据库完全可以轻松应付在那个时候更多的都是静态网页动态交互类型的网站不多。 上述架构下我们来看看数据存储的瓶颈是什么
数据量的总大小一个机器放不下时数据的索引B Tree一个机器的内存放不下时访问量读写混合一个实例不能承受 如果满足了上述 1 or 3个进化….DAL数据库访问层 2、Memcached缓存 MySQL 垂直拆分 后来随着访问量的上升几乎大部分使用MySQL架构的网站在数据库上都开始出现了性能问题web程序不再仅仅专注在功能上同时也在追求性能。程序猿们开始大量使用缓存技术来缓解数据库的压
力优化数据库的结构和索引开始比较流行的是通过文件缓存来缓解数据库压力但是当访问量继续增大的时候多台web机器通过文件缓存不能共享大量的小文件缓存也带了比较高的IO压力在这个时候Memcached就自然的成为一个非常时尚的技术产品。 3、MySQL主从读写分离 由于数据库的写入压力增加Memcached只能缓解数据库的读取压力读写集中在一个数据库上让数据库不堪重负大部分网站开始使用主从复制技术来达到读写分离以提高读写性能和读库的可扩展性MySQL的master-slave模式成为这个时候的网站标配了。 4、分表分库 水平拆分 Mysql 集群 在Memcached的高速缓存MySQL的主从复制读写分离的基础之上这时MySQL主库的写压力开始出现瓶颈而数据量的持续猛增由于MyISAM使用表锁在高并发下会出现严重的锁问题大量的高并发MySQL应用开始使用InnoDB引擎代替MyISAM。
同时开始流行使用分表分库来缓解写压力和数据增长的扩展问题这个时候分表分库成了一个热门技术是面试的热门问题也是业界讨论的热门技术问题。也就是在这个时候MySQL推出了还不太稳定的表分区这也给技术实力一般的公司带来了希望。虽然MySQL推出了MySQL Cluster集群但性能也不能很好满足互联网的需求只是在高可靠性上提供了非常大的保证。 5、MySQL 的扩展性瓶颈 MySQL数据库也经常存储一些大文本的字段导致数据库表非常的大在做数据库恢复的时候就导致非常的慢不容易快速恢复数据库比如1000万4KB大小的文本就接近40GB的大小如果能把这些数据从MySQL省去MySQL将变的非常的小关系数据库很强大但是它并不能很好的应付所有的应用场景MySQL的扩展性差需要复杂的技术来实现大数据下IO压力大表结构更改困难正是当前使用MySQL的开发人员面临的问题。 6、今天是什么样子 7、为什么用NoSQL 今天我们可以通过第三方平台如GoogleFaceBook等可以很容易的访问和抓取数据。用户的个人信息社交网络地理位置用户生成的数据和用户操作日志已经成倍的增加、我们如果要对这些用户数据进行挖掘那SQL数据库已经不适合这些应用了而NoSQL数据库的发展却能很好的处理这些大的数据
二、什么是NoSQL NoSQL NoSQL Not Only SQL意思不仅仅是SQL 泛指非关系型的数据库随着互联网Web2.0网站的兴起传统的关系数据库在应付web2.0网站特别是超大规模和高并发的社交网络服务类型的Web2.0纯动态网站已经显得力不从心暴露了很多难以克服的问题而非关系型的数据库则由于其本身的特点得到了非常迅速的发展NoSQL数据库的产生就是为了解决大规模数据集合多种数据种类带来的挑战尤其是大数据应用难题包括超大规模数据的存储。
例如谷歌或Facebook每天为他们的用户收集万亿比特的数据。这些类型的数据存储不需要固定的模式无需多余操作就可以横向扩展。 NoSQL的特点 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 拓展3V3高 大数据时代的3V 主要是对问题的描述
海量 Volume多样 Variety实时 Velocity
互联网需求的3高 主要是对程序的要求
高并发高可用高性能
当下的应用是 SQL 和 NoSQL 一起使用技术没有高低之分就看你怎么用对吧
三、经典应用分析
聊聊阿里巴巴中文网站的商品信息如何存放以女装、包包为例 聊聊架构发展历程推荐书籍《淘宝技术这十年》 1、演变过程以下图片资料来源阿里巴巴中文站架构设计实践 2、第五代 3、第5代架构使命 和我们相关的多数据源多数据类型的存储问题 1、商品的基本信息 2、商品描述、详情、评价信息多文字类 3、商品的图片 4、商品的关键字 5、商品的波段性的热点高频信息 6、商品的交易价格计算积分累计 大型互联网应用大数据高并发多样数据类型的难点和解决方案 难点
数据类型的多样性数据源多样性和变化重构数据源改造而数据服务平台不需要大面积重构
解决办法 四、N o S Q L 数 据 模 型 简 介 案 例 设 计 以一个电商客户订单订购地址模型来对比下关系型数据库和非关系型数据库
传统的关系型数据库你如何设计
ER图1:1⁄1:N/N:N,主外键等常见
用户对应多个订单多个地址每个订单对应每个商品、价格、地址 每个商品对应产品 NoSQL你如何设计 可以尝试使用BSON。
BSON是一种类json的一种二进制形式的存储格式简称Binary JSON它和JSON一样支持内嵌的文档 对象和数组对象
用BSon画出构建的数据模型 {customer:{id:1000,name:Z3,billingAddress:[{city:beijing}],orders:[{id:17,customerId:1000,orderItems:[{productId:27,price:77.5,productName:thinking in
java}],shippingAddress:[{city:beijing}]orderPayment:[{ccinfo:111-222-
333,txnid:asdfadcd334,billingAddress:{city:beijing}}],}]}
}想想关系模型数据库你如何查如果按照我们新设计的BSon是不是查询起来很简单。
高并发的操作是不太建议有关联查询的互联网公司用冗余数据来避免关联查询分布式事务是支持不了太多的并发的
五、NoSQL四大分类 KV键值
新浪BerkeleyDBredis美团redistair阿里、百度memcacheredis
文档型数据库(bson格式比较多)
CouchDBMongoDB MongoDB 是一个基于分布式文件存储的数据库。由 C 语言编写。旨在为 WEB 应用提供可 扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品是非关系数据库当中功能最丰 富最像关系数据库的。
列存储数据库
Cassandra, HBase分布式文件系统
图关系数据库
它不是放图形的放的是关系比如:朋友圈社交网络、广告推荐系统社交网络推荐系统等。专注于构建关系图谱Neo4J, InfoGrid 四者对比 六、CAP BASE 传统的ACID分别是什么 关系型数据库遵循ACID规则事务在英文中是transaction和现实世界中的交易很类似它有如下四个 特性
A (Atomicity) 原子性 C (Consistency) 一致性 I (Isolation) 隔离性 D (Durability) 持久性 CAP三进二 C : Consistency强一致性A : Availability可用性P : Partition tolerance分区容错性
CAP理论就是说在分布式存储系统中最多只能实现上面的两点。
而由于当前的网络硬件肯定会出现延迟丢包等问题所以分区容错性是我们必须需要实现的。
所以我们只能在一致性和可用性之间进行权衡没有NoSQL系统能同时保证这三点。
注意分布式架构的时候必须做出取舍。
一致性和可用性之间取一个平衡。多余大多数web应用其实并不需要强一致性。
因此牺牲C换取P这是目前分布式数据库产品的方向
一致性与可用性的决择
对于web2.0网站来说关系数据库的很多主要特性却往往无用武之地
数据库事务一致性需求
很多web实时系统并不要求严格的数据库事务对读一致性的要求很低 有些场合对写一致性要求并不 高。允许实现最终一致性。
数据库的写实时性和读实时性需求
对关系数据库来说插入一条数据之后立刻查询是肯定可以读出来这条数据的但是对于很多web应 用来说并不要求这么高的实时性比方说发一条消息之 后过几秒乃至十几秒之后我的订阅者才看 到这条动态是完全可以接受的。
对复杂的SQL查询特别是多表关联查询的需求
任何大数据量的web系统都非常忌讳多个大表的关联查询以及复杂的数据分析类型的报表查询特 别是SNS类型的网站从需求以及产品设计角度就避免了这种情况的产生。往往更多的只是单表的主 键查询以及单表的简单条件分页查询SQL的功能被极大的弱化了。
CAP理论的核心是一个分布式系统不可能同时很好的满足一致性可用性和分区容错性这三个需求 最多只能同时较好的满足两个。因此根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类
CA - 单点集群满足一致性可用性的系统通常在可扩展性上不太强大。CP - 满足一致性分区容忍必的系统通常性能不是特别高。AP - 满足可用性分区容忍性的系统通常可能对一致性要求低一些。 BASE 理论 BASE理论是由eBay架构师提出的。BASE是对CAP中一致性和可用性权衡的结果其来源于对大规模互 联网分布式系统实践的总结是基于CAP定律逐步演化而来。其核心思想是即使无法做到强一致性但 每个应用都可以根据自身业务特点采用适当的方式来使系统达到最终一致性。
BASE就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案。
BASE其实是下面三个术语的缩写
基本可用(Basically Available) 基本可用是指分布式系统在出现故障的时候允许损失部分可用 性即保证核心可用。电商大促时为了应对访问量激增部分用户可能会被引导到降级页面服 务层也可能只提供降级服务。这就是损失部分可用性的体现。软状态(Soft State) 软状态是指允许系统存在中间状态而该中间状态不会影响系统整体可用 性。分布式存储中一般一份数据至少会有三个副本允许不同节点间副本同步的延时就是软状态的 体现。MySQL Replication 的异步复制也是一种体现。最终一致性(Eventual Consistency) 最终一致性是指系统中的所有数据副本经过一定时间后最 终能够达到一致的状态。弱一致性和强一致性相反最终一致性是弱一致性的一种特殊情况。
它的思想是通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上改观。为什么 这么说呢缘由就在于大型系统往往由于地域分布和极高性能的要求不可能采用分布式事务来完成这 些指标要想获得这些指标我们必须采用另外一种方式来完成这里BASE就是解决这个问题的办法
解释
1、分布式不同的多台服务器上面部署不同的服务模块工程他们之间通过Rpc通信和调用对外 提供服务和组内协作。
2、集群不同的多台服务器上面部署相同的服务模块通过分布式调度软件进行统一的调度对外提供 服务和访问。
- 上一篇: 全球设计网分站软件工程师需要考什么证
- 下一篇: 全球知名电子商务网站统计番禺外贸网站建设
相关文章
-
全球设计网分站软件工程师需要考什么证
全球设计网分站软件工程师需要考什么证
- 技术栈
- 2026年03月21日
-
全屏自适应网站模板品牌网站建设十小蝌蚪
全屏自适应网站模板品牌网站建设十小蝌蚪
- 技术栈
- 2026年03月21日
-
全屏网站是什么意思杭州建设网页
全屏网站是什么意思杭州建设网页
- 技术栈
- 2026年03月21日
-
全球知名电子商务网站统计番禺外贸网站建设
全球知名电子商务网站统计番禺外贸网站建设
- 技术栈
- 2026年03月21日
-
全球著名科技网站建设简易电子商务网站流程
全球著名科技网站建设简易电子商务网站流程
- 技术栈
- 2026年03月21日
-
全球最大的网站建设外包网没备案的网站收录
全球最大的网站建设外包网没备案的网站收录
- 技术栈
- 2026年03月21日






