前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >连载 | 深入浅出理解云数据库,年薪百万DBA之路 · 第一回

连载 | 深入浅出理解云数据库,年薪百万DBA之路 · 第一回

作者头像
腾讯云数据库 TencentDB
发布2020-01-14 16:40:08
6180
发布2020-01-14 16:40:08
举报

为帮助开发者更好的了解和运用数据库,腾讯云数据库团队特出品《深入浅出理解云数据库》系列文章,从数据库的基本概念到云数据库特性及应用、从数据库基础原理知识到腾讯云经典实战案例解读,带你走进云数据库的世界。关注“腾讯云数据库”微信公众号,开启2020年的DB修炼之旅。

1

PartⅠ 数据库基本概念

举个简单的例子,我们会把买来的食物、零食等放到冰箱里去,冰箱就是用来存放东西的地方。那么当我们有很多数据的时候,存放的数据的“冰箱”就是数据库。当然,如果用过Excel的话,就更好理解了,数据库就可以类比为Excel。

那么既然有了Excel,为什么还把数据放到数据库里呢,那当然是数据库比Excel的功能更为强大,存储能力也更强等等诸多优点。

数据库也有很多分类,大家最常听到的是“关系型数据库”,怎么理解呢?我们还是来看刚才举的冰箱的例子,比如你是和别人合租的房子,冰箱是几个人一起公用的,我们来用图表看一下这个关系:

编号

姓名

性别

年龄

01

张三

25

02

李四

27

03

王五

30

合租表

比如有一天这三个人一起去逛超市买了很多东西,都放在了冰箱,我们一起看一下冰箱里有什么:

购买人

物品

花费

01

菜花

10

01

可乐

20

01

猪肉

50

02

雪糕

20

02

羊肉

60

03

芹菜

12

03

白菜

16

购买物品表

同时在超市有一个价格表,我们可以清晰的看到每个物品的单价:

物品

单价

菜花

4/斤

可乐

3/瓶

猪肉

28/斤

雪糕

2/个

羊肉

57/斤

芹菜

3.6/斤

白菜

1.4/斤

单价表

如上所示我们建立了三个表,如果我想知道合租表里张三(01)都购买了哪些东西,并且这些东西的单价是多少,我会这样操作:

• 在合租表里查到张三的编号是01

• 在购买物品表里找到所有购买人列里所有行为01的物品,我们发现有菜花、可乐、猪肉三样物品

• 如果我们还想进一步查看他们的单价是多少,就在单价表里分别找到物品列中菜花、可乐、猪肉三行的单价值。

这样我们的流程就走完了,我们会发现这三张表之间是相互有关系的,在不同表中可以通过一定的值匹配到你想要的值,在数据库语言中这个叫联结,即将两个文件甚至多个文件中,指定栏位内容相同的行连接起来。

总结来看,数据库用来存储数据,关系数据库=多张表+各表的联系,主流的关系数据库有oracle、db2、sqlserver、sybase、mysql等。

最后我们来用一张表来看一下各类型数据库及其优缺点:

数据库类型

释义

优点

缺点

关系型数据库

以行和列的形式存储,数据表直接彼此关联协助存储。简单来说是个二维表格模型+直接的联系

容易理解:二维表的结构理解起来更为容易使用方便:可以使用通用的sql语言进行操作便于维护:丰富的完整性减低了数据冗余和数据不一致的概率

• 针对海量数据读写,有效率低下的问题• 难进行横向拓展,当数据量需求变大时,需要进行迁移• 因为涉及到多表的关联查询,复杂的数据分析和查询会导致性能较低

非关系型数据库(NoSQL)

与关系型相反,分布式的,数据以整块存储,就像文档、键值和图结构

易拓展:自由添加,不像关系数据库需要查询各个表的关系查询速度快:数据存储在缓存中,查询速度远大于关系型数据库性能高:基于键值对,不需要经过SQL层的解析

只适合存储简单的数据,对于关系复杂的海量数据,不够持久

1

Part Ⅱ 云数据库的特性

我们明白了什么是云数据库,接下来就要看看云数据库能做什么。

根据概念介绍,云数据库具有以下几个特性:

• 实例快速创建

• 支持只读实例

• 故障自动切换

• 数据备份

• Binlog备份

• 访问白名单

• 监控与消息通知

下面我们来依次看一下这些特性的介绍。

1. 实例快速创建

首先来看一下什么是数据库实例:数据库实例是程序,是位于用户和操作系统之间的一层数据管理软件,用户对数据库中的数据做任何的操作,包括数据定义、数据查询、数据维护、数据库运行控制等等都是在数据库实例下进行的,应用程序只有通过数据库实例才能和数据库打交道。

举个例子,数据库是由众多文件组成的,底层来看就是一堆二进制数,我们熟知的SELECT、DELETE、UPDATE这些操作,都不是直接对数据库进行操作的,而是通过实例来完成对数据库的操作。

云数据的第一大优点就是我们在选好服务和套餐后,控制台会自动为我们配置好实例。

2. 支持只读实例

首先我们来想一下为什么会有只读实例的这种存在,在数据库的应用场景中,读的请求要远远多于写的请求,和读和写共同存在的话有读写锁冲突(一个读写锁同时只能有一个写者或多个读者,但不能同时既有读者又有写者),针对这样的场景,一般读服务会成为数据库的瓶颈,为了能极大程度地提升数据库的读性能,设计了读写分离的架构,因此也就有了只读实例的这种存在。

云数据一般可以创建多个只读实例,来实现读取能力的弹性拓展,增加应用的吞吐量。

3. 故障自动切换

在讲这个特性的之前,我们先来理解另一个数据库术语——主从复制。主从复制就是指同样一份数据我用两个或两个以上的数据库来存储,其中一个数据库作为主库,其他的作为从数据库。在主库进行相关操作的时候,从库也进行同样的操作。那么为什么要这样操作呢,是因为当数据库如果遇到一些问题,主库无法使用了,为了维持业务正常进行,可以将从数据库代替主数据库,防止数据丢失。

因此云数据库的另一个特性就是当主数据库发生不可预知的故障时,可以自动切换该主数据库,保证业务正常进行。

4. 数据备份

数据备份是容灾的基础,防止因为出行误操作或系统故障引起数据丢失,将数据存储到存储介质中的一个过程。

云数据库针对数据备份可以提供多种能力,自动定时备份或手动备份。

5. Binlog备份

Binlog 是指二进制日志,用来记录数据发生或潜在发生更改的sql语句,并且以二进制的形式保存在磁盘中。Binlog的作用类似于Oracle的归档日志,可以用来查看数据库的变更历史(具体的时间点所有的SQL操作)、数据库增量备份和恢复(增量备份和基于时间点的恢复)、Mysql的复制(主主数据库的复制、主从数据库的复制)。

云数据库提供自动备份Binlog日志的能力,并可以长期保存日志,方便用户根据日志进行二次处理。

6. 访问白名单

云数据库提供设置IP白名单的功能来对控制对实例访问的权限。

7. 监控与消息通知

通过配置云数据库控制台可以达到数据库监控的目的,随时监控数据库动态,自定义设置监控不同指标阈值。当监控项触碰红线后,会立即收到短信等方式的通知,进一步加强数据库安全性。

扫描下方二维码关注“腾讯云数据库”,第二回即将开启;回复“迪B课堂”获得腾讯云高级产品经理原创数据库实战视频教程。

年终回馈 

↓↓更多惊喜优惠请点这儿~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云数据库 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据库也有很多分类,大家最常听到的是“关系型数据库”,怎么理解呢?我们还是来看刚才举的冰箱的例子,比如你是和别人合租的房子,冰箱是几个人一起公用的,我们来用图表看一下这个关系:
  • 1. 实例快速创建
  • 2. 支持只读实例
  • 3. 故障自动切换
  • 4. 数据备份
  • 5. Binlog备份
  • 6. 访问白名单
  • 7. 监控与消息通知
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档