开发者社区 > 数据库 > 关系型数据库 > 正文

在PolarDB中,我们数据库中午都没人访问,怎么还是占这么高的内存?

在PolarDB中,我们数据库中午都没人访问,怎么还是占这么高的内存?

展开
收起
我睡觉不困 2024-08-26 17:24:18 47 0
1 条回答
写回答
取消 提交回答
  • 查询缓存(Query Cache)是为了提高查询性能而实现的一种缓存策略,它通过节约CPU资源来达到查询加速的目标,是一项非常实用的技术。其基本思想是:对于每个符合条件的查询语句,直接对结果集进行缓存。当该结果集被再次查询命中时,直接从缓存中读取对应的结果集并返回,不需要经历SQL的分析、优化、执行等复杂的过程。

    MySQL原生Query Cache在设计和实现上存在较多的严重问题,具体如下:

    并发处理较差,在多核情况下,并发度越高性能降低可能越严重。

    内存管理较差,内存利用率低且回收不及时,造成内存浪费。

    当缓存命中率较低时,性能无提升甚至严重降低。

    基于以上问题,MySQL原生Query Cache没有得到广泛应用,在最新版的MySQL 8.0中,取消了此功能。PolarDB对Query Cache进行重新设计和全新实现,进行了如下优化:

    优化并发控制

    取消全局锁同步机制,采用无锁机制,重新设计并发场景下的同步问题,能够充分利用多核的处理能力,保证高并发场景下的性能。

    优化内存管理

    取消内存预分配机制,采用更加灵活的动态内存分配机制,及时回收无效的内存,保证内存的真实利用率。

    优化缓存机制

    动态检测缓存利用率,实时调整缓存策略,解决命中率偏低或读写混合等场景下的性能降低问题。

    相比MySQL原生Query Cache,您可以在不同的业务场景中开启Fast Query Cache以提高查询性能。

    image.png
    参考文档https://help.aliyun.com/zh/polardb/polardb-for-mysql/user-guide/fast-query-cache?spm=a2c4g.11186623.0.i38

    2024-08-27 09:19:58
    赞同 1 展开评论 打赏

阿里云关系型数据库主要有以下几种:RDS MySQL版、RDS PostgreSQL 版、RDS SQL Server 版、PolarDB MySQL版、PolarDB PostgreSQL 版、PolarDB分布式版 。

相关产品

  • 云原生数据库 PolarDB
  • 相关电子书

    更多
    云栖大会:开源 PolarDB 架构演进、关键技术与社区建设 立即下载
    2023云栖大会:和客户一起玩转PolarDB新特性 立即下载
    2023云栖大会:PolarDB for AI 立即下载