为什么要用Nosql
用户的个人信息,社交网络,地理位置。用户自己产生的数据,用户日志等等爆发时增长!
Nosql可以很好的处理以上情况
什么是Nosql
NoSql=Not Only Sql(不仅仅是sql),泛指非关系型数据库
那么什么是关系型数据库和非关系型数据库呢?
关系型数据库:
关系型数据库最典型的数据结构是表,相当于一个个表格,可以用SQL语句方便的在一个表及其多个表之间做复杂的数据查询,安全性高
常见的关系型数据库:Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL
关系型数据库的特点:
安全(因为存储在磁盘中,不会说突然断电数据就没有了)
容易理解(建立在关系模型上)
但不节省空间(因为建立在关系模型上,就要遵循某些规则,好比数据中某字段值即使为空仍要分配空间)
优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
非关系型数据库:
简称NOSQL,是基于键值对的对应关系,不需要SQL层的解析,所以性能非常高。但是不适合用在多表联合查询和一些较为复杂的查询中。NOSQL一般用于数据量较大的存储
非关系型数据库的分类和比较:
1、文档型
2、key-value型
3、列式数据库
4、图形数据库
文档型:
一般用的比较多的是MongoDb
他是关系型数据库和非关系型数据库的中间产品,属于非关系型数据库中功能最丰富的。
key-value型:
列式数据库:
图形数据库:
他不是存图形的,存的是关系,比如:朋友圈社交网络
了解3V和3高:
大数据时代的3V:主要是描述问题的
1.海量Voulme
2.多样Varierty
3.实时Velocity
大数据时代的3高:主要是对程序的要求
1.高并发
2.高可扩
3.高性能
真正在公司中用的是NoSql+关系型数据库
拓展:
学习知识是次要的,思想是最重要的。
推荐文章:阿里云的这群疯子
1.商品的基本信息:
名称、价格、商家信息,关系型数据库可以解决。
2.商品的描述、评论(文字比较多)
文档型数据库中,MongoDB
3.图片:
分布式文件系统FastDFS
淘宝自己的 TFS
Gooale的 GFS
Hadoop HDFS
阿里云的 oss
4.商品的关键字(搜索)
搜索引擎 solr elasticsearch
ISerach (开发者多隆,阿里的一位程序员)