聊聊数据库

时间:2022-10-10 18:05:27 | 浏览:379

数据库的发展基本上也是伴随着计算机技术经历了40年的历史,从最初的文件系统上的文件,到有结构的层次和网状数据库,一直到今天被广泛使用的关系型数据库。随着互联网和物联网行业的兴起,数据量飞速增长,对大数据的采集、存储和应用是每个数据库必备的技

数据库的发展基本上也是伴随着计算机技术经历了40年的历史,从最初的文件系统上的文件,到有结构的层次和网状数据库,一直到今天被广泛使用的关系型数据库。随着互联网和物联网行业的兴起,数据量飞速增长,对大数据的采集、存储和应用是每个数据库必备的技能。现在大多数应用都是数据存储密集型,而不是计算密集型。


数据存储发展

众所周知,文明的发展离不开信息的积累,而任何东西的积累离不开存储。因此,信息存储是文明发展的重要环节,从某种意义上讲,甚至可以说是人类迈入文明社会的标志之一。在历史上,人类曾经创造过很多信息存储的方法。我们一起来看下存储发展历程。

古老的东方开始使用甲骨文记录着自己的数据。


到了东汉,人们开始用纸张记录数据。纸的出现使得信息的记录、传播和继承,有了革命性的进步,促进了人类文化的传播。同时纸也为后来打孔卡的出现奠定了基础。


到了近代有了打孔卡、磁带、软磁盘(记得小时候初中一年级见到的电脑好像是这种存储)、硬盘。以前大学上计算机课,总是听老师讲以前的U盘都是几M的,现在的U盘都有上百G的,而且很便宜。

存储现在发展的已经很快,现在存储数据很廉价。而数据库的必备功能就是存储数据。

传统的数据库

传统的关系型数据库大家都接触的比较多,比如常见的Oracle、MySQL、PostgreSQL。数据库中每个属性都有特性的类型来定义,可以把数据想象成一个个表格存储着。和我们记录数据的认知非常相似,一行行记录着信息。


例如学生表里一条记录,就是一个学生他的属性描述,包括年龄、性别、出生年月日、所属班级等。但班级也有它的更详细的属性,那就可以在学生表里增加一个关系字段来表示该学生所属的班级索引,通过索引连接到班级表,可以查到这个班级的年级、班主任、学生人数等信息。

NoSQL数据库

随着移动互联网时代的到来,需要存储的数据量越来越大,对机器的扩展要求成为了数据库的必备技能,这也是传统数据库的弱点,比如Oracle在做集群是很有限的。NoSQL对于数据库的扩展和高可用是它的强项。

那为什么NoSQL能够有可扩展和高可用呢?

我们都知道CAP理论,CAP理论指的是一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。


分布式系统的一致性通常称为ACID,即原子性、一致性、隔离性、永久性,传统的关系型数据库都能做到。简单的你可以理解一致性为数据写入数据库中,后续读取是否能立刻读取到更新的最新值。

另外,我们可以看到大多数NoSQL数据库都是“弱一致性”的,强调的是“最终一致性”,可以理解为如果你停止向数据库写入数据,并等待一段不确定的时间,那么最终所有的读取请求都会返回相同的值。换句话说,不一致性是暂时的,最终会解决。通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上改观。显然,NoSQL大都是用一致性来换取了可用性和分区容错性。那么牺牲一致性到底值不值得呢?举个例子,淘宝双十一当天,对于商品的评论和访问数可能不需要那么在意,首要是要保证服务器的高可用,崩了什么都白搭了!

新型数据库

在实际的应用中,存在一种场景,我们要求数据库必须保证ACID和高可用性,于是一批新型的数据库诞生了,比如蚂蚁金服的OcenBase和最近的“新晋网红”数据库TiDB。他们看似近乎完美的支持的分布式一致性和高可用性,支持标准SQL,对传统的关系型数据库提供迁移兼容方案。

还有一个数据库可以关注下,Vertica。很多人把Vertica划分到传统关系型数据库中,但是他与传统型关系库又有不同:

  • Vertica是面向分析的而不是面向事务的,他的强项在于OLAP场景,对大量数据的读取和聚合表现强悍!

  • Vertica是基于列存储的,列存储让数据的分割查询变的更加灵活

Vertica并不是一个广泛应用的数据库,我们上面提到了CAP理论,提到所有数据库不能同时满足“三性”,但是对于特性的应用场景设计,就能很大程度上在“三性”上取得平衡。

Vertica的原型称为“C-Store”,C-Store最早是2005年学术界的一个项目,作者是2015年图灵奖获得者 Mike Stonebraker,同时也是Vertica的创办者。

论文总结一下三点:

  • 数据库的查询瓶颈是在IO上,而不是在CPU上,那么用CPU时间交换磁盘带宽是有意义的。一般有两种途径用CPU时间交换磁盘带宽。第一种方法是采用高效的编码技术,比如存储一个客户的住址,可以用6bits来编码所有的US州名,如果采用州名缩写,则需要16bits;如果用全称则更多。第二种方法是浓缩存储的数据,比如把N个数据,每个K bits,直接打包成N*K bits。

  • 在物理上存储列的集合,每个集合都按照一些属性来排序。以同一个属性进行排序的列,组成projections。

  • 读写优化,构建WOS和ROS组件,用tuple mover联系它们



C-Store 应该是第一个将列存技术在实际系统中实现出来的,比Google的BigTable要早(公众号回复“列存储”,可下载C-Store和BigTable论文)。

我们怎么用数据库

其实以前的一些经典理论还是很有道理的,比如CAP、比如Raft呀,各个数据库还都是“术业有专攻”,别老想着用一种数据库打天下。比如,核心系统的事务数据还是选择使用MySQL或者postgreSQL。分析性数据库还是选择Vertica或者Greenplum。

相关资讯

新乡市凤泉区大数据局:疫情防控不放松数据保障当先锋

映象网讯(大象新闻记者 崔学庆)“疫情就是命令,防控就是责任”,自疫情防控工作开展以来,新乡市凤泉区大数据局全体员工高度重视,在充分运用大数据技术的基础上,强化部门间的协同配合,高标准完成各项工作任务。快速响应,迅速建立组织架构。该局按照市

全省6323.6万!淮南常住人口数据出炉!哪个县(区)人最多?

近日省统计局发布《2018年安徽省人口变动情况抽样调查主要数据公报》2018年末,全省常住人口6323.6万人,比上年增加68.8万人,增长1.1%,同2010年安徽省第六次全国人口普查的5950.1万人相比,共增加373.5万人,年均增加

濉溪县数据资源局到县城管局、市大数据中心开展数字濉溪走访调研

濉溪县数据资源局到县城管局、市大数据中心开展数字濉溪走访调研为了解淮北市、濉溪县大数据发展现状和趋势,促进濉溪县大数据快速发展,推进“数字濉溪”建设,9月16日,濉溪县数据资源局党组书记、局长刘溪带领全体职工到濉溪县城管局、淮北大数据中心进

12组数据!带您看看阜阳新变化

12月15日市政府新闻办召开实力阜阳大美阜阳“十三五”成就巡礼系列新闻发布会(第十场)摄影:王彪市发展改革委主任高文军在梳理前期发布成就的基础上再选取12组典型数据进一步展示我市经济社会发展可喜变化并回答记者提问<发布会主要内容>

A股数据报告:古井贡酒2022年01月26日

A股报告古井贡酒交易日期:2022年01月26日作成日期:2022年01月26日股票代码:000596股票名称:古井贡酒2022年01月26日,古井贡酒收盘价225.87元,涨跌幅为+6.78%。本交易日,上证指数上涨0.66%;深证成指上

特步半年报数据惊艳,硬科技交出高增长答卷

8月23日,特步国际(1368.HK)发布了2022年上半年财报。特步国际上半年收入达56.84亿元,同比增长37.5%;经营利润实现9.22亿元,同比增长34.8%;普通股股权持有人应占净利润为5.90亿元,同比增长38.4%。整体上看,

友情链接

SEO域名抢注宝宝起名网妈妈知道币圈奶茶加盟网许昌新闻头条网松下冰箱评测网旅行社信息网近视防控科普网天蝎座星座屋钓鱼场资讯网交换人生电影网杭州交友相亲网攀岩运动网周公解梦官网世纪数藏NFT杭州旅游网海螺水泥股票视频号直播资讯网
MYSQL数据库应用网-mysql数据库基础知识、Mysql还原数据库、mysql数据库迁移方案、mysql数据库增删改查、mysql数据备份和恢复、mysql数据迁移工具、mysql数据库迁移详细步骤、mysql数据库存储目录迁移、mysql数据库不停机迁移方法、mysql数据备份和恢复、免费mysql服务器、mysql官网免费版安装教程。
MySQL数据库应用 nincu.cn ©2022-2028版权所有