Skip to Content

介绍

什么是数据库代理

数据库代理,是在高可用云数据库UDB MySQL基础之上的网络代理服务,其位于数据库服务端与应用服务端之间。 数据库代理将主从架构的数据库统一纳管,并向应用服务端提供一个统一的网络入口,其具有高可用、高性能、易扩展等特性。 数据库代理为服务端提供了读写分离、SQL限流、SQL统计、自动排障等核心功能,使应用服务端更加专注于业务。

为什么要用读写分离

数据显示,关系型数据库在OLTP业务下96.87%都在等待读I/O,而处理器计算仅仅占了5.3%,这说明要提高数据库的QPS性能,关键的一点是提高系统的IO能力。

另一个数据表明, 大多数业务对数据库的访问,是读大于写。 典型的如电商、O2O、互联网金融等业务,读写比例可以达到 5:1 甚至 10:1 。

提高IO能力的方法, 除了升级硬件, 提升单个节点的磁盘I/O能力之外, 还有一个重要的方法是读写分离。 可以部署一主多从的主从复制集群, 进而将读请求分发给多个数据库节点并行处理。考虑到大部分业务对数据库的访问以读居多, 读写分离能够给数据库性能带来明显的增益。

首先,多个节点并行读取,能够提供几倍于单个节点的磁盘数据读取能力;

其次,由于将读请求分摊到多个节点, 单个节点的I/O也得以减轻, I/O等待时间得以减小。

最终,整个系统的I/O能力得到有效提升。

对于OLAP业务而言, 由于需要涉及大量的内存存储和计算, CPU和内存可能成为瓶颈,读写分离也具有一定的意义。 通过将数据分析请求分流到多个节点,可以让不同的数据分析操作,在多个节点并行地执行, 节点之间互不干扰, 充分发挥并行处理的优势。