解决关系型数据库性能瓶颈的两种思路

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 快速且可持续的弹性扩容、降低对关系型数据库系统依赖。

最近的“停课不停学”给互联网教育行业这堆火又添了一把柴火。这把火烧的越旺,后台的资源越紧张,尤其是数据库。最近我就频繁接到一些用户有关数据库过载的求援。
解决这个问题,有两种思路:

  • 优化数据库系统的架构,令其能够快速可持续的弹性扩容
  • 降低对关系型数据库系统依赖,最好能够实现即便数据库挂了,业务也不会挂。

快速弹性扩容,这里的关键词是快速,云服务商的数据库服务一般都支持增加只读实例,假如启动一个只读实例要很长时间,我们只能一直开着只读而不敢释放,这样本来的弹性支出就变成了固定支出。假如能够在5分钟之内完成只读节点的拉起提供服务,那么我们就可以根据业务的需求来随时拉起只读实例。我们都知道在线教育行业一般都有非常明显的业务高峰期,通过只在高峰期开启只读就可以节省大笔开支。

假如只能增加只读写入很快就将变成另一个瓶颈,尤其是超大表的更新和写入操作。分库、分表成为下一阶段的必然选择。初期有分库分表的需求的数据库表和功能模块不是很多,采取直接在程序里编码的方式关系不大,随着“大表”越来越多,越来越多的模块都加入了分库、分表的代码。代码的味道就越来越不对了。于是负责维护代码的同学开始备受煎熬,对代码的洁癖催促他们赶紧把这些代码整合起来,但一整合就发现事情又没有那么容易,早知道就选择一些开源框架好了,但这样的框架就没有么?是不能可持续的保证性能扩展呢,毕竟数据库的事情关系重大。

关系型数据库快速持续的弹性扩容,这样的架构其实是现成的:

通过阿里云DRDS整合多个阿里云PolarDB,实现透明的水平拆分,及快速的弹性扩容。

阿里云DRDS 是一个分库分表中间件,也是阿里巴巴去O的功臣,经历过双十一的洗礼,经过这么多年的考验,“坑”早被填的差不多了,DRDS本身采用分布式架构,最大支持1024核4096GB内存。99%的用户都不会触碰到这个性能上限,从而能够实现可持续的性能弹性扩展。

PolarDB 是云原生数据库,采用共享存储架构,因为新增只读节点不需要复制数据,所以能够快速弹性扩容。PolarDB 单节点最大88核710GB内存,最大可扩展到16个节点。节点配置越高,随时弹性扩容节省的就越多。

解决问题的另一个思路是降低对关系型数据库的依赖,例如可以考虑在一些业务中使用NoSQL数据库。NoSQL数据库本身就是从互联网的高并发需求中催生出来的,无论是开源的HBase还是阿里云的表格存储都能够提供PB级的存储和千万级的并发处理能力。

除了NoSQL数据库,还可以考虑用一些消息队列服务来缓冲突然增加的业务压力对业务的冲击,用户的前台操作可以先放到消息队列中,再由后台服务取出慢慢处理。每年的双十一0点刚过的下单高峰就是通过阿里云的消息队列服务进行缓冲处理的。

另外,通过一些限流中间件可以将数据库等一些关键部门保护起来。可以根据业务的优先级将不同等级的服务对数据库的调用进行隔离,系统资源紧张时限制部分非关键业务对数据库的访问。阿里云AHAS高可用服务就是一个这样的限流中间件。

这种降低对关系型数据库依赖的方案还有很多,具体选择什么方案,以及与继续投入关系型数据库如何平衡还要看具体应用场景,改造成本和可预期的业务成长速度相关。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
18天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
32 3
|
3月前
|
SQL 监控 关系型数据库
"SQL性能瓶颈大揭秘:一步步教你揪出慢查询元凶,从根源解决数据库拖沓问题,让应用速度飞起来!"
【8月更文挑战第31天】作为一名数据库管理员或开发者,面对复杂系统时,运行缓慢的SQL查询常常令人头疼。本文将指导你如何诊断并解决这些问题。首先,通过性能监控工具识别出问题查询;其次,利用`EXPLAIN`分析其执行计划,了解索引使用情况;接着,优化查询语句,如使用合适索引、减少JOIN操作等;再者,优化数据库设计,采用分区表或调整硬件资源;最后,持续监控性能并调优。通过这些步骤,可有效提升数据库的整体性能。
65 0
|
5月前
|
SQL 监控 关系型数据库
MySQL慢查询日志配置指南:发现性能瓶颈,提升数据库效率
MySQL慢查询日志配置指南:发现性能瓶颈,提升数据库效率
793 0
|
6月前
|
存储 SQL 缓存
关系型数据库的性能瓶颈
关系型数据库的性能瓶颈
125 4
|
1月前
|
关系型数据库 MySQL 分布式数据库
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶,邀请好友完成更有机会获得​小米Watch S3、小米体重称​等诸多好礼!
零基础教你用云数据库PolarDB搭建企业网站,完成就送桌面收纳桶!
|
2月前
|
关系型数据库 MySQL Serverless
探索PolarDB MySQL版:Serverless数据库的灵活性与性能
本文介绍了个人开发者对阿里云PolarDB MySQL版,特别是其Serverless特性的详细评测体验。评测涵盖了产品初体验、性能观测、Serverless特性深度评测及成本效益分析等方面。尽管试用过程中遇到一些小问题,但总体而言,PolarDB MySQL版表现出色,提供了高性能、高可用性和灵活的资源管理,是个人开发者和企业用户的优秀选择。
|
3月前
|
关系型数据库 MySQL 分布式数据库
PolarDB 与传统数据库的性能对比分析
【8月更文第27天】随着云计算技术的发展,越来越多的企业开始将数据管理和存储迁移到云端。阿里云的 PolarDB 作为一款兼容 MySQL 和 PostgreSQL 的关系型数据库服务,提供了高性能、高可用和弹性伸缩的能力。本文将从不同角度对比 PolarDB 与本地部署的传统数据库(如 MySQL、PostgreSQL)在性能上的差异。
231 1
|
15天前
|
关系型数据库 分布式数据库 数据库
锦鲤附体 | PolarDB数据库创新设计赛,好礼不停!
锦鲤附体 | PolarDB数据库创新设计赛,好礼不停!
|
1月前
|
关系型数据库 分布式数据库 数据库
PolarDB 开源:推动数据库技术新变革
在数字化时代,数据成为核心资产,数据库的性能和可靠性至关重要。阿里云的PolarDB作为新一代云原生数据库,凭借卓越性能和创新技术脱颖而出。其开源不仅让开发者深入了解内部架构,还促进了数据库生态共建,提升了稳定性与可靠性。PolarDB采用云原生架构,支持快速弹性扩展和高并发访问,具备强大的事务处理能力及数据一致性保证,并且与多种应用无缝兼容。开源PolarDB为国内数据库产业注入新活力,打破国外垄断,推动国产数据库崛起,降低企业成本与风险。未来,PolarDB将在生态建设中持续壮大,助力企业数字化转型。
85 2