MySQL查询缓存

MySQL查询缓存

MySQL在查询的时候首先会查询缓存,如果缓存命中的话就直接返回结果,不需要解析sql语句,也不会生成执行计划,更不会执行;如果没有命中缓存,则再进行SQL解析以及进行查询,并将结果返回(也同时将结果放入到缓存中)

MySQL查询过程
MySQL查询过程

缓存查找是利用对大小写敏感的哈希查找来实现的,Hash查找只能进行全值查找(sql完全一致),如果缓存命中,检查用户权限,如果权限允许,直接返回,查询不被解析,也不会生成查询计划,由于在缓存更新的时候会对数据加锁,所以对于读写比较频繁的系统,建议关闭缓存

缓存何时失效

MySQL的查询缓存系统会跟踪查询中涉及的每个表,如果这些表(数据或结构)发生变化,那么和这张表相关的所有缓存数据都将失效。正因为如此,在任何的写操作时,MySQL必须将对应表的所有缓存都设置为失效。如果查询缓存非常大或者碎片很多,这个操作就可能带来很大的系统消耗,甚至导致系统僵死一会儿

查询缓存不仅仅影响写操作,对于读操作中任何的查询语句在开始之前都必须经过检查,即使这条SQL语句永远不会命中缓存;如果查询结果可以被缓存,那么执行完成后,会将结果存入缓存,也会带来额外的系统消耗

可以将query_cache_type设置为DEMAND,可以通过SQL_CACHE和SQL_NO_CACHE来控制某个查询语句是否需要进行缓存,这时只有加入SQL_CACHE的查询才会走缓存,其他查询则不会,这样可以非常自由地控制哪些查询需要被缓存

select sql_cache * from user
  • 只有查询sql完全一致时才会走查询缓存
  • 表数据更改会删除表的查询缓存
  • 包含存储过程、函数、用户变量、触发器的查询语句不会走查询缓存

参数配置

query_cache_type 设置查询缓存是否开启,可以设置为OFF/ON/DEMAND have_query_cache 查看是否支持查询缓存 query_cache_size 设置查询缓存的内存大小 query_cache_limit 设置单条查询缓存可用的存储最大值(加上sql_no_cache可以提高效率) query_cache_wlock_invalidate 设置当写锁在某个表上时,读请求是要等待写锁释放资源之后在查询还是允许直接从query cache中读取结果(false表示可以直接从query cache中取得结果)针对MyISAM存储引擎 query_cache_min_res_unit 设置查询缓存分配的内存块的最小单元(每个结果集)

缓存信息

show  status  like  'Qcache%';

Qcache_free_blocks 1    查询缓存中的可用内存块数,该值如果较大,说明query cache中的内存岁票较多,需要清理
Qcache_free_memory 16760152 查询缓存的可用内存量
Qcache_hits 0  查询缓存命中数
Qcache_inserts 0  添加到查询缓存的查询数
Qcache_lowmem_prunes 0  由于内存不足而从查询缓存中删除的条数
Qcache_not_cached 102277604   非缓存查询的数量
Qcache_queries_in_cache 0  当前查询缓存中的查询数
Qcache_total_blocks 1 查询缓存总块数

https://zhhll.icu/2021/数据库/关系型数据库/MySQL/进阶/20.MySQL查询缓存/

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/370152.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

steam搬砖项目赚钱吗?操作流程看这一篇就够了

很多人应该听说过steam,它是国外一款知名的游戏社交平台,也是目前世界上最大的游戏平台之一。而steam搬砖项目,关键就是靠信息差。我们要做的就是在steam以低价买入道具装备,然后上架到网易buff卖出,赚取差价。 什么人…

mac下载工具:JDownloader 2 for Mac 中文版

JDownloader是一款开源的下载管理工具,主要使用Java编程语言开发,因此它能够在支持Java的操作系统上运行,包括Windows、Linux和Mac OS。这款软件专门为那些需要通过网盘下载文件的用户提供便利,它支持众多流行的网盘服务&#xff…

机器学习 | 解析聚类算法在数据检测中的应用

目录 初识聚类算法 聚类算法实现流程 模型评估 算法优化 特征降维 探究用户对物品类别的喜好细分(实操) 初识聚类算法 聚类算法是一种无监督学习方法,用于将数据集中的对象按照相似性分组。它旨在发现数据中的内在结构和模式,将具有相似特征的数据…

MySQL运维实战(5.3) MySQL数据乱码的一些情况

作者:俊达 表数据乱码 表数据出现乱码的情况通常是由于数据的真实编码与相关参数不一致引起的,其中包括常见的参数如character_set_client、character_set_results、字段编码以及终端编码等。确保这些参数保持一致,可以有效预防和解决乱码问…

【Web】CVE-2021-22448 Log4j RCE漏洞学习

目录 复现流程 漏洞原理 复现流程 启动HTTP->启动LDAP->执行Log4j vps起个http服务,放好Exploit.class这个恶意字节码 LDAPRefServer作为恶意LDAP服务器 import java.net.InetAddress; import java.net.MalformedURLException; import java.net.URL; import javax.ne…

C++ 动态规划 线性DP 最长共同子序列

给定两个长度分别为 N 和 M 的字符串 A 和 B ,求既是 A 的子序列又是 B 的子序列的字符串长度最长是多少。 输入格式 第一行包含两个整数 N 和 M 。 第二行包含一个长度为 N 的字符串,表示字符串 A 。 第三行包含一个长度为 M 的字符串,表…

程序员可以考取哪些证书更有用

IT行业有哪些证书 IT行业有许多证书可以考取,以下是一些主要的和有价值的证书相关信息: IT行业常用证书一览表 认证机构认证领域证书名称能力概述思科认证网络工程师CCNA、CCNP和CCIE等不同级别思科公司颁发的网络开发运维架构能力微软认证系统开发工程…

爬虫-网络空间微博信息管理系统的设计与实现-计算机毕业设计源码85633

摘 要 本论文主要论述了如何使用django框架开发一个网络空间微博管理信息系统,本系统将严格按照软件开发流程进行各个阶段的工作,面向对象编程思想进行项目开发。在引言中,作者将论述该系统的当前背景以及系统开发的目的,后续章节…

【C/C++ 11】贪吃蛇游戏

一、题目 贪吃蛇游戏机制是通过控制蛇上下左右移动并吃到食物得分。 蛇头碰到墙壁或者碰到蛇身就游戏结束。 食物随机生成,蛇吃到食物之后蛇身变长,蛇速加快。 二、算法 1. 初始化游戏地图并打印,地图的边缘是墙,地图的每个坐…

19.HarmonyOS App(JAVA)依赖布局DependentLayout使用方法

layout/ability_main.xml 显示位置不对&#xff1a;检查布局文件ohos:lef_of "id:tuzi",比如显示在兔子的左侧&#xff0c;这里就会显示不对。 需要id前没有$符号。改为&#xff1a; ohos:lef_of "$id:tuzi" <?xml version"1.0" encodi…

服务器学习

云服务器通常是通过多台物理服务器协同工作来提供的。云服务提供商使用大规模的数据中心&#xff0c;这些数据中心包含许多物理服务器。这些物理服务器上运行着虚拟化技术&#xff0c;允许它们被分割成多个虚拟服务器实例。 当用户请求创建一个云服务器时&#xff0c;云服务提…

FreeCAD的python脚本编写

简介 FreeCAD是一款强大的开源CAD软件&#xff0c;可以与python无缝对解&#xff0c;使用python来驱动三维几何的构建&#xff0c;具有很高的灵活性。本文主要讨论一下录制宏的方法&#xff0c;以及如何驱动特定参数 方法 打开FreeCAD软件&#xff0c;点击录制宏按钮后&…

C++实现鼠标点击和获取鼠标位置(编译环境visual studio 2022)

1环境说明 2获取鼠标位置的接口 void GetMouseCurPoint() {POINT mypoint;for (int i 0; i < 100; i){GetCursorPos(&mypoint);//获取鼠标当前所在位置printf("% ld, % ld \n", mypoint.x, mypoint.y);Sleep(1000);} } 3操作鼠标左键和右键的接口 void Mo…

什么是功能安全?

前言 在上一家公司的时候&#xff0c;有幸参加过公司内部的技术分享会&#xff0c;有一个同事跟我们分享了功能安全的一些内容。在提问环节&#xff0c;我问了一个问题“什么是功能安全&#xff1f;”他回答不上来。这也是我们很多人在工作中常犯的一个问题&#xff1a;我们做了…

汽车租赁系统

目录 一.研究背景 二.系统架构 1、SSM 2、JAVA 3、MySQL 4、系统架构 三.系统功能 1、车辆管理 2、客户管理 3、销售管理 4、统计分析 四.系统实现 五.结论总结 一.研究背景 传统的销售与信息统计管理都主要依靠人工&#xff0c;处理出的销售数据量与使用管理系统…

vcruntime140.dll有什么作用?vcruntime140.dll缺失的解决方法分享

解决因缺少vcruntime140.dll文件引起的问题实际上是相对简单的尽管最近有许多人在抱怨该文件频繁丢失且不知道该如何处理。作为一个责任编辑&#xff0c;我认为有很大的必要向大家清楚地解释一下。让我们从探索vcruntime140.dll文件缺少的修复方法吧。 一.msvcp140.dll的作用 …

基于springboot就业信息管理系统源码和论文

随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;就业信息管理系统也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人工管理显然已无法应对时代的变化&#xff0c;而…

2024年美赛数学建模E题思路分析 - 财产保险的可持续性

# 1 赛题 问题E&#xff1a;财产保险的可持续性 极端天气事件正成为财产所有者和保险公司面临的危机。“近年来&#xff0c;世界已经遭受了1000多起极端天气事件造成的超过1万亿美元的损失”。[1]2022年&#xff0c;保险业的自然灾害索赔人数“比30年的平均水平增加了115%”。…

FastCAE合作开发项目:可执行调试的脚本编辑器

开发内容 1. 要求能够编辑脚本内容 2. 要求能够高亮显示关键字、纯数字、单行注释、多行注释等 3. 要求能够设置断点功能 4. 要求能够进行运行求解器、单步运行、暂停、继续、终止等基本调试功能 5. 要求能够高亮执行脚本&#xff0c;分别展示单脚本行执行中与执行完成效果…

更新npm镜像源:淘宝镜像已过期,及时切换!

你好&#xff0c;我是小白Coding日志&#xff0c;一个热爱技术的程序员。在这里&#xff0c;我分享自己在编程和技术世界中的学习心得和体会。希望我的文章能够给你带来一些灵感和帮助。欢迎来到我的博客&#xff0c;一起在技术的世界里探索前行吧&#xff01; 前言 就在昨天…
最新文章