数据库相关

1.关系型数据库

把复杂的数据结构归结为简单的二元关系(即二维表格形式)

numnameage
01lili18
02nana19

在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上。在大型系统中通常有多个表,且表之间有各种关系。实际使用就是通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的管理。

典型产品:MySQL、SqlServer、Oracle、PostgreSQL、SQLite等。

对比

数据库优势缺点
MySQL1)MySQL性能卓越,服务稳定,很少出现异常宕机。
2)MySQL开放源代码且无版权制约,自主性及使用成本低,版本更新较快。
3)MySQL软件体积小,安装使用简单,并且易于维护,安装及维护成本低。
4)MySQL支持多种操作系统,提供多种API接口,支持多种开发语言,特别对流行的PHP语言有很好的支持。
数据量大时处理性能不及Oracle
SqlServer1)真正的客户机/服务器体系结构
2)图形化的用户界面,使系统管理和数据库管理更加直观、简单
3)丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地
4)与WinNT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等,SQL Server也可以很好地与Microsoft BackOffice产品集成。
5)提供数据仓库功能,这个功能只在Oracle和其他昂贵的DBMS中才有。
只能在Windows系统下运行
Oracle1)Oracle 能在所有主流平台上运行。
2)Oracle 性能高,保持开放平台下TPC-D和TPC-C世界记录。
3)获得最高认证级别的ISO标准认证
价格昂贵
PostgreSQL1)PostgreSQL 的稳定性极强, Innodb 等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步。
2)PG 性能高速度快。任何系统都有它的性能极限,在高并发读写,负载逼近极限下,PG的性能指标仍可以维持双曲线甚至对数曲线,到顶峰之后不再下降。
3)PG 多年来在 GIS 领域处于优势地位,因为它有丰富的几何类型,实际上不止几何类型,PG有大量字典、数组、bitmap 等数据类型。
4)PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统
5)PG对数据量大的文本以及SQL处理较快
SQLite1)零配置,SQlite3不用安装,不用配置,不用启动,关闭或者配置数据库实例。当系统崩溃后不用做任何恢复操作,再下次使用数据库的时候自动恢复
2)SQLite是被设计成轻量级,自包含的,不依赖服务进程
3)采用无数据类型,所以可以保存任何类型的数据,SQLite采用的是动态数据类型,会根据存入值自动判断
4)可移植,可运行在不同操作系统上
数据量不宜过大,sql语句执行相比其他数据库效率较低

2.非关系型数据库

键值存储数据库

键值数据库将数据存储为键值对集合,其中键作为唯一标识符。

在这里插入图片描述

键包含分区键和排序键,而值包含更多的实际信息。比如实际使用是可以以学号为键,姓名、性别、年龄和班级等信息为值进行存储。实际存储形式很灵活,是业务需求自行定义即可。

典型产品:Redis、Memcached等。

列存储数据库

列式存储(column-based)是相对于传统关系型数据库的行式存储(Row-basedstorage)来说的。简单来说两者的区别就是对表中数据的存储形式的差异。

列存储解决的主要问题是数据查询问题

平时的查询大部分都是条件查询,通常是返回某些字段(列)的数据。对于行存储数据,数据读取时通常将一行数据完全读出,如果只需要其中几列数据的情况,就会存在冗余列,出于缩短处理时间的考量,消除冗余列的过程通常是在内存中进行的。而列存储,每次读取的数据是集合的一段或者全部,不存在冗余性问题。

典型产品:HBase等。

面向文档数据库

此类数据库可存放并获取文档,可以是XML、JSON、BSON等格式,这些文档具备可述性(self-describing),呈现分层的树状结构(hierarchical tree data structure),可以包含映射表、集合和纯量值。数据库中的文档彼此相似,但不必完全相同。文档数据库所存放的文档,就相当于键值数据库所存放的“值”。文档数据库可视为其值可查的键值数据库。

典型产品:MongDB、CouchDB等。

图形数据库

图形数据库顾名思义,就是一种存储图形关系的数据库。图形数据库是NoSQL数据库的一种类型,它应用图形理论存储实体之间的关系信息。关系型数据用于存储明确关系的数据,但对于复杂关系的数据存储却有些力不从心。如图4这种人物之间的关系,如果用关系型数据库则非常复杂,用图形数据库将非常简单。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

典型产品:Neo4J、InfoGr id等。

搜索引擎存储

搜索引擎数据库是应用在搜索引擎领域的数据存储形式,由于搜索引擎会爬取大量的数据,并以特定的格式进行存储,这样在检索的时候才能保证性能最优。

典型产品:Solr、Elasticsearch等。

对比

数据库优势缺点
Redis1)支持内存缓存,这个功能相当于Memcached
2)支持持久化存储,这个功能相当于MemcacheDb,ttserver
3)数据类型更丰富。比其他key-value库功能更强
4)支持主从集群,分布式
5)支持队列等特殊功能
Memcached开源的、高性能的、具有分布式内存对象的纯缓存系统不支持持久化
HBase1)适合存储半结构化或非结构化数据
2)高可用和海量数据以及很大的瞬间写入量
3)记录很稀疏,RDBMS的行有多少列是固定的,为null的列浪费了存储空间
HBase为null的Column不会被存储,这样既节省了空间又提高了读性能
1)不适合于大范围扫描查询
2)不直接支持 SQL 的语句查询
MongoDB1)弱一致性(最终一致),更能保证用户的访问速度
2)查询与索引方式灵活,是最像SQL的Nosql
3)内置GridFS,支持大容量的存储
4)内置Sharding,支持复制集、主备、互为主备、自动分片等特性
5)第三方支持丰富
6)性能优越
1)单机可靠性比较差
2)磁盘空间占用比较大

不以业务模型为基础的架构设计都是耍流氓。同样数据库选型也应该根据自己业务需求选择最适合自己的数据库

3.两种对比

关系型数据库最典型的数据结构是,由二维表及其之间的联系所组成的一个数据组织
优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
———————————————————————————————————————
非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。
优点:
1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
3、高扩展性;
4、成本低:nosql数据库部署简单,基本都是开源软件。

缺点:
1、不提供sql支持,学习和使用成本较高;
2、无事务处理;
3、数据结构相对复杂,复杂查询方面稍欠。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值