当前位置: 首页 > news >正文

【MySQL】了解并操作MySQL的缓存配置与信息

目录

一、查看缓存配置

二、查看缓存信息


查询MySQL的缓存相关信息,一般我们用两个命令:

        show variables like '%query_cache%';

        show status like '%qcache%';

一、查看缓存配置

        查看缓存配置的相关的系统变量变量,返回给我们服务器缓存的配置参数

        举个栗子:打开数据库,新建查询输入:show variables like '%query_cache%';

其中 :

        ①have_query_cache 表示是否支持查询缓存,YES表示支持;

        ②query_cache_type 表示缓存类型,OFF表示关闭查询缓存,ON表示开启,DEMAND表示用户自定义查询缓存;

                如:开启或禁用查询缓存

                SET GLOBAL query_cache_type = ON;

        ③query_cache_limit 表示支持的最大单条查询sql数据量;

                如:设置单个查询的最大缓存给1MB,超出范围则不缓存

                SET GLOBAL query_cache_limit = 1048576; 

        ④query_cache_min_res_unit 表示查询缓存最小单位;

                如:修改查询缓存最小单位为4KB

                SET GLOBAL query_cache_min_res_unit = 4096; 
 

        ⑤query_cache_size 表示查询缓存空间大小;

                如:将数据库缓存大小修改为16MB

                SET GLOBAL query_cache_size = 16777216; 

        ⑥query_cache_wlock_invalidate 表示查询缓存是否支持写锁,OFF表示不支持,即  读取数据不考虑写锁,ON表示支持,即读取数据会被写锁阻塞;

注意:以上这些操作也是一次性有效的,要想MySQL重启后永久生效,需要去服务器中找到MySQL配置文件 my.cnf my.ini 修改内容:

[mysqId] 下面加上自己定义的配置信息

query_cache_size = 16777216  # 16MB
query_cache_type = ON
query_cache_limit = 1048576   # 1MB
query_cache_min_res_unit = 4096   # 4KB

保存并重启mysql容器:docker  restart  mysql容器id

接下来再返回数据库执行show variables like '%query_cache%'; 查看此时的缓存配置:

                                                                                                          

已之前配置对比,配置成功生效!

二、查看缓存信息

     查看缓存运行状态与相关的动态运行信息,其返回值可能帮助我们了解缓存的工作效果

     举个栗子:依旧在查询窗口,输入:show status like '%Qcache%';

其中:

        ①Qcache_free_blocks 表示已分配内存块中空闲块数量;

        ②Qcache_free_memory 表示缓存空闲空间大小;

        ③Qcache_hits 表示缓存命次数;

        ④Qcache_inserts 表示缓存未命中时,数据写入缓存次数;

        ⑤Qcache_lowmem_prunes 表示缓存修剪次数,缓存满时,会使用LRU算法移除最久未被使用缓存,此值较大,说明缓存空间太小;

        ⑥Qcache_not_cached 表示没有被缓存的查询sql数量;

        ⑦Qcache_queries_in_cache 表示缓存查询语句数量;

        ⑧Qcache_total_blocks 表示当前查询缓存占用的内存块数量;
 

原理与上述同理。 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • python AssertionError: Torch not compiled with CUDA enabled
  • 浅谈Spring Cloud:认识微服务
  • vue3+ts+vite搭建脚手架(二)配置eslintprettier
  • SpringBoot接口开发总结
  • Java设计模式—面向对象设计原则(四) ----->接口隔离原则(ISP) (完整详解,附有代码+案例)
  • 网络安全宣传周 | DNS安全威胁与应对措施分享
  • Google提出 Speculative RAG:通过草稿机制增强检索增强生成
  • HTB-Vaccine(suid提权、sqlmap、john2zip)
  • ImDisk Toolkit将一部分RAM模拟成硬盘分区
  • 构建响应式 Web 应用:Vue.js 基础指南
  • Linux内核编程(十六)CAN总线驱动
  • Anolis OS 8.8 CentOS8离线安装mysql-8.0.9
  • Docker简介在Centos和Ubuntu环境下安装Docker
  • 医疗监测数据检测系统源码分享
  • Chrome和Chromium浏览器有什么不同?
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • CSS相对定位
  • js操作时间(持续更新)
  • Laravel 菜鸟晋级之路
  • Node项目之评分系统(二)- 数据库设计
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • python3 使用 asyncio 代替线程
  • Python利用正则抓取网页内容保存到本地
  • spring-boot List转Page
  • Sublime Text 2/3 绑定Eclipse快捷键
  • vue--为什么data属性必须是一个函数
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 基于webpack 的 vue 多页架构
  • 如何解决微信端直接跳WAP端
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • MyCAT水平分库
  • Spring第一个helloWorld
  • (2)MFC+openGL单文档框架glFrame
  • (C++)八皇后问题
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (二)PySpark3:SparkSQL编程
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (排序详解之 堆排序)
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (生成器)yield与(迭代器)generator
  • (转载)OpenStack Hacker养成指南
  • ****Linux下Mysql的安装和配置
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .Net Core与存储过程(一)
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET Framework 3.5安装教程
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • /usr/bin/env: node: No such file or directory
  • [1] 平面(Plane)图形的生成算法
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [AI Embedchain] 开始使用 - 全栈