NoSQL 入门和概述

     发布在:SQL      浏览:39      评论:0 条评论

入门概述

是什么

NoSQL = Not Only SQL,意为“不仅仅是SQL”,泛指 非关系型数据库

随着互联网 WEB2.0 网站的兴起,传统的关系型数据库在应付 WEB2.0 网站,特别是超大规模和高并发的 SNS 类型的 WEB2.0 纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展

NoSQL 数据库的产生就是为了解决大规模数据集合、多重数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储

这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展

能干嘛

  1. 易扩展

NoSQL 数据库种类繁多,但是一个共同的特点就是去掉了关系型数据库的关系型特性

数据之间无关系,这样就非常容易扩展。也无形之中,在架构的层面上带来了可扩展的能力

  1. 大数据量高性能

NoSQL 数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀

这得益于它的无关系性,数据库的结构简单

一般 MySQL 使用 Query Cache,每次表的更新 Cache 就失效,是一种大粒度的 Cache

在针对 WEB2.0 的交互频繁的应用,Cache 性能不高,甚至可能造成数据库负担

而 NoSQL 的 Cache 是记录级的,是一种细粒度的 Cache,所以 NoSQL 在这个层面上来说就要性能高很多了

  1. 多样灵活的数据模型

NoSQL 无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式

而在关系型数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是噩梦

  1. 传统 RDBMS VS NoSQL

去哪下

  1. Redis

《Redis 安装》

  1. Memcache

《Linux Memcached 安装》

《Windows 下安装 Memcached》

  1. MongoDB

《Windows 平台安装 MongoDB》

《Linux 平台安装 MongoDB》

《Mac OSX 平台安装 MongoDB》

怎么玩

  1. key + value(键值对)
  2. cache(缓存)
  3. persistence(持久化)

3V + 3高

当下的 NoSQL 经典应用

当下的应用基本是 SQL 和 NoSQL 一起使用

阿里巴巴中文站

架构发展历程
  1. 演变过程

NoSQL 入门和概述

  1. 第四代网站架构

但到了 2010 年底,阿里巴巴却不得不开始实施第五代网站架构改造

  1. 第五代网站架构使命
多数据源多数据类型的存储问题

NoSQL 入门和概述

商品基本信息

名称、价格、出厂日期、生产厂商等

利用关系型数据库,MySQL/Oracle(淘宝内部用的 MySQL 是经过内核修改的)

淘宝在去 IOE 化(即拿掉 Oracle),为什么去 IOE ?

2008年,王坚加盟阿里巴巴成为集团首席架构师,即现在的首席技术官。这位前微软亚洲研究院常务副院长被马云定位为:将帮助阿里巴巴集团建立世界级的技术团队,并负责集团技术架构以及基础技术平台搭建。
在加入阿里后,带着技术基因和学者风范的王坚就在阿里巴巴集团提出了被称为 “去IOE”(在 IT 建设过程中,去除 IBM小型机、Oracle 数据库及 EMC 存储设备)的想法,并开始把云计算的本质,植入阿里 IT 基因。
王坚这样概括 “去IOE” 运动和阿里云之间的关系: “去IOE” 彻底改变了阿里集团 IT 架构的基础,是阿里拥抱云计算,产出计算服务的基础。 “去IOE” 的本质是分布化,让随处可以买到的 Commodity PC 架构成为可能,使云计算能够落地的首要条件。

商品描述、详情、评价信息(多文字类)

多文字信息描述类,会造成 IO 读写性能变差,采用文档数据库 MongoDB

商品的图片

商品图片展示类,采用分布式的文件系统

  1. 淘宝自己的 TFS
  2. Google 的 GFS
  3. Hadoop 的 HDFS
商品的关键字

搜索引擎 ISearch,淘宝内用

商品的波段性的热点高频信息

采用内存数据库,Tair、Redis、Memcached

商品交易、价格计算、积分累计

采用外部系统、第三方支付接口,支付宝

总结

总结大型互联网应用(大数据、高并发、多样数据类型)的难点和解决方案

难点
解决办法

EAI 和统一数据平台服务层 UDSL

  1. 是什么
  1. 什么样

NoSQL 入门和概述

NoSQL 入门和概述

NoSQL 入门和概述

NoSQL 入门和概述

下一篇:《NoSQL 数据库简介》

Responses