本文介绍PolarDB MySQL版与RDS MySQL在相同场景中OLTP负载性能的对比结果。
相对RDS MySQL,PolarDB MySQL版在如下几方面进行了优化,提高了集群整体性能:
采用了领先硬件技术,包括使用3DXpoint存储介质的Optane存储卡、NVMeSSD和RoCE RDMA网络等。
基于新的硬件,实现了一整套在用户态运行的IO和网络协议栈,获得了更高的性能、更低的延迟。
通过锁优化、IO路径优化、针对大表优化等内核层面的优化,实现了并发场景下的更优性能。
注意事项
在您对PolarDB和RDS进行性能对比前,请了解以下注意事项,以便能获得比较准确、合理的性能对比结果:
使用相同规格配置的PolarDB和RDS进行性能对比。
使用相同版本的PolarDB和RDS进行性能对比。
推荐使用模拟线上压力的场景进行实际性能对比,或者使用Sysbench进行对比,这样获得的数据更接近线上实际场景。
在对比读性能的时候,不推荐您使用单条SQL进行比较。
因为PolarDB是计算存储分离的架构,所以单条语句有网络延迟的影响,导致读性能不如RDS。但是线上数据库的缓存命中率基本都在99%以上,因此只有第一次的读会调用I/O,因此读取性能会降低,后续数据都在缓存池(Buffer Pool)中,并不需要调用I/O,因此性能是一样的。
在对比写性能的时候,同样不推荐您使用单条SQL进行比较,推荐模拟线上环境进行压力测试。
如果要对比RDS性能,请使用PolarDB(主节点+只读节点)和RDS(主实例+半同步的只读实例)进行对比。这是因为PolarDB的架构在写入数据的时候默认采用Quorum机制,即写入数据时默认写入到三副本里面的大多数(在三个副本中的两个或两个以上写入成功,就认为写操作成功了)。PolarDB已经在存储层面做了数据冗余,并保证三副本强同步高可靠,因此使用RDS MySQL的半同步复制(而不是异步复制)进行对比更合理。