查询缓存(Query Cache)是为了提高查询性能而实现的一种缓存策略,它通过节约CPU资源来达到查询加速的目标,是一项非常实用的技术。其基本思想是:对于每个符合条件的查询语句,直接对结果集进行缓存。当该结果集被再次查询命中时,直接从缓存中读取对应的结果集并返回,不需要经历SQL的分析、优化、执行等复杂的过程。
MySQL原生Query Cache在设计和实现上存在较多的严重问题,具体如下:
- 并发处理较差,在多核情况下,并发度越高性能降低可能越严重。
- 内存管理较差,内存利用率低且回收不及时,造成内存浪费。
- 当缓存命中率较低时,性能无提升甚至严重降低。
基于以上问题,MySQL原生Query Cache没有得到广泛应用,在最新版的MySQL 8.0中,取消了此功能。PolarDB对Query Cache进行重新设计和全新实现,进行了如下优化:
- 优化并发控制
取消全局锁同步机制,采用无锁机制,重新设计并发场景下的同步问题,能够充分利用多核的处理能力,保证高并发场景下的性能。 - 优化内存管理
取消内存预分配机制,采用更加灵活的动态内存分配机制,及时回收无效的内存,保证内存的真实利用率。 - 优化缓存机制
动态检测缓存利用率,实时调整缓存策略,解决命中率偏低或读写混合等场景下的性能降低问题。
相比MySQL原生Query Cache,您可以在不同的业务场景中开启Fast Query Cache以提高查询性能。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




