华为云云数据库rds冷热数据问题导致sql执行速度慢_云淘科技

场景描述

从自建MySQL或友商MySQL迁移到云上RDS for MySQL实例,发现同一条sql语句执行性能远差于原数据库。

原因分析

同一条sql语句在数据库中执行第1次和第2次可能会性能差异巨大,这是由数据库的buffer_pool机制决定的:

第1次执行时,数据在磁盘上,称之为冷数据,读取需要一定的耗时。
读取完,数据会被存放于内存的buffer_pool中,称为热数据,读取迅速;对于热数据的访问速度极大的超过冷数据,所以当数据是热数据时,sql语句的执行速度会远快于冷数据。

该场景中,源端数据库中常用的数据一般是热数据,所以访问时速度极快。当数据迁移到云上RDS for MySQL时,第1次执行同样的sql语句,很可能是冷数据,就会访问较慢,但再次访问速度就会得到提升。

解决方案

该场景是正常现象,在同一个数据库中,我们经常会遇到第1次执行一条语句时很慢,但再次执行就很快,也是因为受到了buffer_pool的冷热数据原理的影响。

父主题: 性能资源类

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家