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

mysql增加缓存的命令_MySQL查询缓存设置 提高MySQL查询性能 | 学步园

首先看看MSYQL逻辑框架:图片来自高性能mysql

2ff15dc80718e36cd328d1bcda97eae7.png

如果使用了QueryCache,当查询接收到一个和之前同样的查询,服务器将会从查询缓存中检索结果,而不是再次分析和执行相同的查询。这样就能大大提高查询性能。

打开查询缓存,要通过几个步骤来设置:

虽然你设置mysql允许查询缓存,但是如果你设置的查询缓存大小为了0,这和没有允许没什么区别。

所以必须是几个步骤的设置才能真正打开查询缓存这个功能。

下面演示最常用的设置查询缓存

一、 query_cache_type 使用查询缓存的方式

一般,我们会把 query_cache_type 设置为 ON,默认情况下应该是ON

mysql> select @@query_cache_type;

+--------------------+

| @@query_cache_type |

+--------------------+

| ON |

+--------------------+

这样 当我们执行 select id,name from tableName; 这样就会用到查询缓存。在 query_cache_type 打开的情况下,如果你不想使用缓存,需要指明selectsql_no_cache id,name from tableName;

当然也可以禁用查询缓存: mysql> set session query_cache_type=off;

当然也可以使用命令打开查询缓存:mysql> set session query_cache_type=on;

这里我们不讨论这个,我们演示常用的设置。

二、 系统变量 have_query_cache 设置查询缓存是否可用

mysql> show variables like 'have_query_cache';

+------------------+-------+

| Variable_name | Value |

+------------------+-------+

| have_query_cache | YES |

+------------------+-------+

上面的显示,表示设置查询缓存是可用的。

三、 系统变量 query_cache_size

表示查询缓存大小,也就是分配内存大小给查询缓存,如果你分配大小为0,

那么 第一步 和 第二步 起不到作用,还是没有任何效果。

mysql> select @@global.query_cache_size;

+---------------------------+

| @@global.query_cache_size |

+---------------------------+

| 16777216 |

+---------------------------+

上面是 mysql设置默认的,有的版本好像默认是0的,那么就要自己设置下。

设置 set @@global.query_cache_size=100000; 这里是设置1M左右。

再次查看下 select @@global.query_cache_size;

显示我们设置新的大小,表示设置成功。

bea51dd3ad2f711a22b9eea4eb95dc31.png

四、 query_cache_limit 控制缓存查询结果的最大值

例如: 如果查询结果很大, 也缓存?这个明显是不可能的。

MySql 可以设置一个最大的缓存值来限制缓存,当你查询缓存数结果数据超过这个值就不会进行缓存。缺省为1M,也就是超过了1M查询结果就不会缓存。

mysql> select @@global.query_cache_limit;

+----------------------------+

| @@global.query_cache_limit |

+----------------------------+

| 1048576 |

+----------------------------+

这个是默认的数值,如果需要修改,就像设置缓存大小一样设置,使用set重新指定大小。

好了,通过4个步骤就可以 打开查询缓存了,具体值的大小和查询的方式 这个按需求来设定!。

相关文章:

  • mysql desc limit_MySql sql优化之order by desc/asc limit M
  • mysql mycat java_mysql读写分离实现 jdk+mycat环境部署
  • rocketmq技术内幕:rocketmq架构设计与实现原理_这份553页的RocketMQ神仙手册在Github上了标星70.5k+实在太香了...
  • mysql中为什么删除一个表中的主键约束后该字段不能为空_MySQL数据表的操作
  • 获取textbox控件中输入值_Android 开发(一):Toast弹窗与获取控件的值
  • 深度学习异常检测_深度学习用来做日志异常检测
  • python图片分析中央气象台降水_python 画降水量色斑图问题
  • 圆锥形怎么画_如何画圆锥体的展开图?
  • matlab内部迭代函数_MATLAB:向量化编程提升值函数迭代(Value Function Iteration)的速度...
  • shell判断某个字符串是不是以数字开头_面试中的shell部分看着就对了
  • mysql简单命令行_MySQL命令行的简单操作
  • python混淆加密ios代码_Python中的AES加密与iOS不同
  • python的隐藏功能分享_分享6个隐藏的python功能
  • python解码函数_解码函数尝试编码Python
  • yii mysql数据库操作_Yii2 常用数据库操作
  • @angular/forms 源码解析之双向绑定
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Java多态
  • Octave 入门
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • uni-app项目数字滚动
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 工作中总结前端开发流程--vue项目
  • 力扣(LeetCode)357
  • 面试遇到的一些题
  • 前嗅ForeSpider采集配置界面介绍
  • 入门级的git使用指北
  • 智能合约开发环境搭建及Hello World合约
  • nb
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​2021半年盘点,不想你错过的重磅新书
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (二)PySpark3:SparkSQL编程
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (三十五)大数据实战——Superset可视化平台搭建
  • (转)Linq学习笔记
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • ?php echo ?,?php echo Hello world!;?
  • @RequestBody与@ModelAttribute
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • [APIO2012] 派遣 dispatching
  • [C#]OpenCvSharp使用帧差法或者三帧差法检测移动物体