【云驻共创】数据库邂逅企业开发,看DTSE专家三招击穿应用痛点

举报
金鱼哥 发表于 2024/08/12 15:10:16 2024/08/12
【摘要】 本文通过讲解数据库的成本、性能和安全,从而深入剖析数据库领域痛点,击穿成本控制、突破性能瓶颈、打造数据库安全等核心问题!

一、企业开发者最关注的三件事:数据库的成本、性能和安全

1. 成本

提高资源投入产出比

  • 如何能降低数据库的整体费用?
  • 怎样能最大化的利用数据库的资源?
  • 如何根据自己的业务情况选择性价比最高的方案?

2. 性能

应对业务快速扩展场景

  • 什么情况下我需要关注数据库的性能问题?
  • 有哪些方案能提前让我规避数据库的性能瓶颈问题?
  • 请求访问慢
  • 数据库空间不足
  • 连接数不足
  • 并发能力弱

3. 安全

业务连续性的红线

  • 人工误操作
  • 自然灾害
  • 恶意攻击
  • 数据库审计
  • 数据加密

二、数据库成本控制

1. 提高资源利用率

弹性扩缩容方案

image-20240810225334340.png

场景:业务潮汐型波动(固定时间段流量较大),如每天定时分析数据。

方案:GaussDB(for MySQL)Serverless版本。

说明:在资源整体规格不改变的情况下,提高资源的使用率。GaussDB(for MySQL)会根据资源负载情况自动进行扩缩容,如cpu使用率大于80%并持续五秒即触发扩容。


多租实例(提高利用率)

image-20240810230330339.png

场景:业务多租的情况下,多数据库实例部署,资源实际使用率不高的情况。

方案:GaussDB(for MySQL)实例多租能力。

说明:在多实例的情况下,如果每个实例的资源使用率不高,但为了业务高峰考虑又不得不购买高规格实例时,
可以使用GaussDB(for MySQL)的实例多租能力,最大化的利用实例的资源。


2. 根据业务选择合适的实例类型

选择性价比实例(Flexus RDS)

image-20240810231957843.png

场景:业务并不是对性能要求特别高的情况下,如小规模的开发环境的数据库,个人博客等。

方案:使用Flexus RDS实例。

说明:Flexus RDS是最具性价比的一款实例,但性能相较于其他数据库稍弱,扩展性不强,可以用做对性能要求不高的业务。


写场景较多的场景选择GaussDB(for MySQL)

image-20240811003108234.png

场景:业务写多读少情况下,如一些I0T信息,日志,股票系统等。

方案:选择GaussDB(for MySQL)。

说明:GaussDB(for MySQL)相较于开源MySQL写性能提升7倍,因此同样的业务场景下可以选择更低的规格来满足业务诉求。


3. 降低存储成本

读写分离情况下,读实例较多场景选择GaussDB(for MySQL)

image-20240811003653535.png

场景:如果你开启了读写分离且读实例较多的情况下,同时存储空间占用较多。

方案:GaussDB(for MySQL)共享存储。

说明:GaussDB(for MySQL)底层做了共享存储,因此每次增加读实例的时候只增加计算节点,存储共用这样省下了存储的费用(读实例数*存储空间),且GaussDB(for MySQL)底层使用DFV存储池,存储空间压缩20%。


有不常用的表格,可以使用GaussDB(for MySQL)的冷热数据存储分离功能

image-20240811004021972.png

场景:不常用的表,查询频次不高,如一些历史数据的统计报表。

方案:使用GaussDB(for MySQL)冷热数据存储分离能力。

说明:不常用的数据通过修改表属性可以把它下沉到OBS中使得存储的费用大大降低。


三、数据库性能瓶颈

1. 问题有哪些

首先,从硬件替换到方案改造再到SQL调优。技术实现难度越来越高,成本逐渐降低。

image-20240811004358924.png

而性能瓶颈主要有三大类:

  • 资源不足
  • 慢SQL
  • 架构瓶颈

接下来的章节将介绍有那些解决方案处理上述性能瓶颈。


2. 资源不足,硬件升级

资源不足主要有以下情况:

  • CPU、内存不足
  • 磁盘不足
  • 连接数不足

根据上述情况,可根据使用的需求选择不同的实例的类型,如下图所示:

image-20240811215427981.png


3. 慢SQL调优

慢SQL主要有以下情况:

  • 复杂SQL查询缓慢
  • 并发量大查询缓慢
  • 其他原因

复杂SQL查询(统计聚合)缓慢

image-20240811215849043.png

利用GaussDB(for MySQL)HTAP的能力基于代价自动切换AP,提升并行查询、算子下推提高查询能力。


并发量大查询缓慢

image-20240811220002208.png

使用读写分离的能力,使用更多的读实例。可以使用RDS、GaussDB(for MySQL)和DDM来实现。


其他原因

  1. 开启慢SQL日志定位问题。
  2. 查看查询索引是否生效。
  3. 避免复杂join和子查询。
  4. 调整相关系统参数,如査询缓存大小,并发连接数,日志文件大小等等。
  5. 使用redis进行缓存,减少数据库压力。
  6. 列存储等。

4. 架构瓶颈

架构瓶颈主要有以下情况:

  • 单表过大(超过2000w条)
  • 表数量过多(单库超过200张表)
  • 数据冗余

单表过大

image-20240811220449891.png

  1. 采用DDM水平分表的方式把单个表拆分成多个分区表。但带来的问题与使用限制较多。
  2. 使用分布式数据库Gaussdb,提升数据库承载能力。

单库表数量过多

数据库包含了所有库表,此时可根据具体情况进行分库分表,例如下图所示,可将商城数据库拆分为不同的库表进行使用。

image-20240811220811070.png


数据冗余

数据冗余的主要有以下几个方面的缺点:

1.占用存储空间:数据冗余需要存储多个副本,因此会占用更多的存储空间。

2.增加数据管理的复杂性:多个副本需要进行同步和管理,这会增加数据管理的复杂性。

3.增加成本:数据冗余需要更多的存储设备和硬件,这会增加成本。

4.数据一致性问题:多个副本可能会发生数据一致性问题,例如,一个副本上的数据更新可能不及时地同步到其他副本上。

5.安全性问题:多个副本可能会增加数据泄露的风险,因为副本可能会被复制到不安全的位置。


四、数据库的安全风险

数据库的安全风险主要有:SQL注入、流量攻击、勒索病毒、自然灾害、人工误操作、隐私泄露、删库跑路等等。

可按风险类型分为:外部风险内部风险物理层面风险


1. 外部风险

外部风险主要有:

  • 流量攻击:攻击者的目标是让数据库因负载过高瘫痪。例如执行一些复杂SQL。
  • SQL注入:“注入”恶意的SQL代码片段,干扰应用程序的正常SQL查询逻辑,进而达到未经授权访问或篡改数据的目的。
  • 勒索病毒:通过对受感染系统中的数据库文件进行加密或限制访问,然后向用户勒索赎金来获取利润。这种病毒通常会在用户打开恶意邮件或文件时被下载到计算机上,一旦开始运行,就会立即开始加密用户的数据库文件。

针对上述风险可有对应的防治措施:

  • 流量攻击:使用DDOS防护、利用缓存减少数据库压力、云数据库SQL限流能力。
  • SQL注入:使用WAF、DBSS、参数化查询V、ORM框架。
  • 勒索病毒:使用主机防护HSS、提升密码复杂度、不使用自建数据库、访问控制(端口)、定期备份

2. 内部风险

内部风险主要有:

  • 人工误操作:如运维、DBA交接不清楚,新人对资源不熟悉。导致误删数据库表、或其他误操作。
  • 删库跑路:掌握着重要信息的系统研发人员,在离开公司时由于各种不满情绪等原因,在未经公司许可的情况下,对数据库进行恶意破坏,删除其中的数据或整个数据库,从而造成公司巨大损失。
  • 隐私泄露:内部人员出于个人利益泄露数据,拖库开放API被滥用,导致泄露;黑客入侵收集数据等等。

针对上述风险可有对应的防治措施:

  • 人工误操作:使用DBSS、防治措施、数据库备份、数据库审计、权限管控。
  • 删库跑路:使用DBSS、防治措施、数据库备份、数据库审计、权限管控。
  • 隐私泄露:使用GaussDB TED 透明加密、DEW数据加密、DSC数据安全中心。

3. 物理层面保障

在面对故障时,系统能否以“最快”的速度进行恢复,就成为系统可用性的关键。云数据库具有业界容灾架构方案,确保系统可用性,在物理层面进行保障,我们可根据使用需求而进行选择。

同城灾备

image-20240811232156221.png

两地三中心

image-20240811232328267.png

异地多活

image-20240811232426472.png


五、云数据库保障开发者数据安全

① 免费的全方位安全防护,让黑客无从下手

  • 强制的高复杂度密码
  • SSL管道
  • VPC、安全组和IAM

② 7*24小时实时备份,可帮企业找回被删除的数据

  • 最多可保留2年,可随时下载到本地
  • 恢复被删除的数据耗时分钟级

③ 回收站,可帮企业找回被删除的数据库实例

  • 被删除的实例至少保留1天,最多可保留7天
  • 任何人无权清空回收站
  • 恢复被删除的数据库实例耗时分钟级

④ 审计日志让对数据库的所有操作无所遁形

  • 记录所有用户对数据库的所有操作
  • 任何人无权清理审计日志
  • 最多可保留2年,可随时下载到本地

2023年华为云数据库服务

  • 客户数据丢失事故0次
  • 通过实时备份恢复,帮助客户找回被误删除的数据97次
  • 通过回收站,帮助客户找回被误删除的数据库实列23次
  • 通过审计日志,帮助客户定位到对数据库的异常操作115次

六、总结

  • 深入剖析数据库领域痛点,击穿成本控制突破性能瓶颈打造数据库安全等核心问题,从而根据使用需求选择合适的数据库类型和对应的产品。
  • GaussDB是华为自主创新研发的关系型数据库,基于华为在数据库领域20多年的战略投入,通过多维度的技术创新,在行业实践中构筑了高可用、高安全、高性能、高弹性、高智能的技术优势,在数据库替换场景中,具备易部署、易迁移的特性。

image-20240812000640684.png

image-20240812002747222.png


本文参与华为云社区【内容共创】活动第27期。

【内容共创】活动第27期活动详情:https://bbs.huaweicloud.com/blogs/430812

任务2.数据库邂逅企业开发,看DTSE专家三招击穿应用痛点

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。