数据库mysql 知识整理与巩固
简单的先了解一下数据库
首先了解一下数据库中存储的数据分类:
结构化数据:
是指由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理
非结构化数据
是指数据结构不规则或不完整,没有预定义的数据模型,不方便用数据库二维逻辑表来表现的数据。包括所有格式的办公文档、文本、图片、HTML、各类报表、图像和音频/视频信息
半结构化数据
是属于结构化数据的一种形式,数据结构有自描述性:数据本身就是在描述数据的结构
还有数据复杂性:结构难以纳入现有的各种描述框架,实际应用中不易进行清晰的理解与把握。
常见的半结构化数据就是xml,json
分析常见的关系型数据库的区别和作用:
Oracle:
特点:
由于其诞生早、结构严谨、高可用、高性能、高安全等特点,使其在传统数据库应用中近乎垄断,金融、通信、能源、物流、零售、制造等各个传统行业的大型公司都在使用,甚至早期的世界500强企业几乎全部都是Oracle的用户。
应用场景:
主要在传统行业的数据化业务中,比如:通信、银行、金融这样的对可用性、健壮性、安全性、实时性要求极高的业务;或者零售、物流、能源这样对海量数据存储分析要求很高的业务。通常搭配Oracle大型服务器和磁盘阵列使用,售价非常昂贵。
Mysql:
Web时代使用最广泛的关系型数据库,MySQL的早期定位的主要应用场景就是互联网开发。可以说,是互联网的爆发成就了MySQL,LAMP架构风靡天下。而由于MySQL更多的的追求轻量、易用,在传统的数据库应用场景中,份额极少,中小型企业使用mysql的比较多
关系型数据库缺点:
1.处理数据比较单一
2.高并发读写性能差
3.可扩展性低
非关系型数据库(NoSql数据库)
Nosql数据库也有很多不同类别:
1.键值型(Key-Value) : Redis
应用场景
内容缓存,主要用于处理大量数据的密集IO型高访问负载。
特点:
键值数据库是形式最简单的NoSQL,数据中的每一个值(value)都有专门的键(key)与之匹配,能够实现针对相对简单数据集的超快应用性能,查找速度非常快。
2.文档型 (Document) : MongoDB
应用场景
Web应用,收集和处理来自网页和移动应用的数据。
特点
文档数据库以类似文档的结构存储数据,可以采用无模式的形式,数据结构要求不严格,表结构可变。
3.列存储 (Big tables) : HBase
应用场景
通常应用于互联网搜索、其他大规模的网页应用和PB级数据的分析应用。
特点
以列簇式存储,将同一列数据存在一起,在处理大数据集的时候,就可以具备更高的性能和扩展性(如HBase+Hadoop架构)。
4.图形 (Graph):GraphDB
应用场景
社交网络,推荐系统等,专注于构建关系图谱。
特点
类似于图的结构存储数据,可以利用图结构相关算法,便于探索数据之间的联系
NoSQL的优点(相比关系型数据库):
1.低延迟的读写速度:应用快速地反应能极大地提升用户交互速度;
2.高性能和可扩展性:基于键值对,数据没有耦合性,容易进行分布式扩展;
3.非结构化和不可预知的数据:NoSQL的存储格式是Key-Value形式、文档形式、图片形式等等,而关系型数据库则只支持基础类型。
NoSQL的缺点:
1.不提供SQL支持,学习和使用成本较高;
2.提供的功能有限:无事务处理,完整的解决方案和报表等支持不好;
3.稳定性:产品的完善程度和稳定性,不能和几十年的历史的关系型数据库相提并论。
下面将着重进行目前流行的mysql和redis进行复习和巩固