mysql query cache 关闭_为什么要关闭MySQL query cache-Fun言

MySQL的query cache大部分情况下其实只是鸡肋而已,建议全面禁用。当然了,或许在你的场景下还是挺好的,还能发挥作用,那就继续使用吧,把本文当做参考就好。

06e8d233a4f5dc65438019c079fef09d.png

不过,可能有的人人为只需要把 query_cache_size 大小调整为 0 就可以了,可以忽略 query_cache_type 参数的值,反正它也是可以在线调整的。

事实果真如此吗?让我们来实际模拟测试下就知道了。

模拟以下几种场景

场景1:初始化时,同时设置 query_cache_size 和 query_cache_type 的值为 0;

场景2:初始化时,设置 query_cache_size = 0,但设置 query_cache_type = 1;

场景3:初始化时,设置 query_cache_size = 0,query_cache_type = 1,但是启动后立刻 修改 query_cache_type = 0

场景4:初始化时,设置 query_cache_size = 0,query_cache_type = 0,但是启动后立刻 修改 query_cache_type = 1

场景5:初始化时,设置 query_cache_size = xMB,query_cache_type = 1,但是启动后立刻 修改 query_cache_type = 0

经过测试,得到下面几个重要结论

结论1:想要彻底关闭query cache,务必在一开始就设置 query_cache_type = 0,即便是启动后将 query_cache_type 从 1 改成 0,也不行;

结论2:即便query_cache_size = 0,但 query_cache_type 非 0 的话,在实际环境中,可能会频繁发生 Waiting for query cache lock;

结论3:一开始就设置 query_cache_type = 0 的话,没有办法在运行 过程中再次动态启用,反过来则可以。也就是说,一开始是启用 query cache 的, 在运行过程中将其关闭,但事实上仍然会发生  Waiting for query cache lock,并没有真正的关闭;

详细测试过程

一、测试方法

采用sysbench模拟并发oltp请求:

sysbench --test=tests/db/oltp.lua --oltp_tables_count=10 --oltp-table-size=100000 --rand-init=on --num-threads=64 --oltp-read-only=off --report-interval=10 --rand-type=uniform --max-time=1800 --max-requests=0 run

二、具体几种测试模式

1、一直关闭QC(query cache的简写,下同),即  query_cache_size = 0, query_cache_type = 0

测试过程中,一直都没有和query cache lock相关的状态出现,结果tps:2295.34

2、启用QC,但QC size 设置为 0,即:query_cache_size = 0,query_cache_type = 1

测试过程中,一直有 Waiting for query cache lock 状态出现,结果tps:2272.52

3、启用QC,但QC size为0,但启动时立刻关闭QC,即初始化时 query_cache_size = 0,query_cache_type = 1,启动后立刻修改 query_cache_type = 0

测试过程中,也一直有 Waiting for query cache lock 状态出现,结果tps:2311.54

4、关闭QC,但启动后立刻启用QC,即初始化时 query_cache_size = 0,query_cache_type = 0,启动后立刻修改 query_cache_type = 1

这时,会提示报错信息:

失败:ERROR 1651 (HY000): Query cache is disabled; restart the server with query_cache_type=1 to enable it

也就是说,如果一开始就关闭 QC 的话,是没办法在运行过程中动态再启用QC的。

5、启用QC,并设置QC size为256M,即 query_cache_size = 256M,query_cache_type = 1

这种情况下,在测试过程中一直有 Waiting for query cache lock 状态出现,并且结果tps也很差,只有 1395.39(几个案例中最差的一种)

6、启用QC,设置QC size为256M,但启动后立刻关闭QC,即 query_cache_size = 256M,query_cache_type = 1,启动后立刻修改 query_cache_type = 0

这种情况下,在测试过程中也一直有  Waiting for query cache lock 状态出现,结果tps:2295.79(在这个模式下,如果设置 query_cache_type = 2,效果也不佳)

第三种模式下,虽然看起来tps还不错,但毕竟上面只是简单模拟测试,实际情况下如果有频繁的query cache lock的话,tps肯定不会太好看。

因此,总的来说,想要获得较高tps的话,最好还是一开始就关闭QC,不要心存侥幸或者固守陈规。

query cache延伸阅读请见

参考推荐:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 基础之java运算符

运算符,顾名思义就是用于计算的符号。按功能分为:赋值运算符、算术运算符、关系运算符和逻辑运算符按操作数的个数分类:单目运算符、双目运算符、三目运算符运算符的目:运算符能连接操作数的个数称为运算符的目运算符的优先级&…

直流电机调速仿真作业

本次调速仿真采用PID调节。首先要确定PID中的各项设计参数,仿真过程中采用临界比例度法确定了大概的Kp值。在若干次调整的过程中,发现加入微分环节后调整时间略有上升,故采用PI调节。调整参数确定为Kp75,Ki22。控制器部分的程序如下图所示。原…

Java运算符优先级和表达式及数据类型转换

计算机程序在处理数据时会进行大量的计算,而数据的运算则需要借助运算符和表达式来完成。表达式是指由操作数和运算符组成的用于完成某种运算功能的语句子表达式Y X * ( Z 10 ) 表达式 其中Y、X、Z、10 称为操作数,、*、 称为运算符。 在…

Bugtags 2016-06-16 更新内容

增加版本管理功能 随着版本的增多,有些历史的版本不再使用,可将这些版本隐藏起来。操作步骤如下:点击设置 - 版本管理(管理员可见)- 取消勾选需要隐藏的版本即可。隐藏版本后,版本筛选中将不会显示&#xf…

直通车运营系统优化之账户结构设置

国庆期间,小2哥我好好的享受了好几天的日子,说实话,自从做了淘宝,就很少像这期间一样好好的享受了这段日子 。做淘宝有时候真的很苦逼,每天的工作时间比一个打工的还长,熬夜到凌晨才睡也是家常便饭&#xf…

深度学习代码练习

代码下载地址:https://github.com/daijifeng001/R-FCN 对应论文:Object Detection via Region-based Fully Convolutional Networks 1、代码里面给的数据库下载链接失效,需要去代码下载主页最下方给定的资源区下载。 2、按照要求一步一步运行…

rabbitmq 不同的消费者消费同一个队列_消息队列王者--rabbitMQ深入理解--工作过程、消费模式、持久化等...

概述之前已经对rabbitMQ的一些基本概念做了介绍和不同MQ之间的比较,今天主要对rabbitMQ的一些方面做扩展。01消息队列Broker:简单来说就是消息队列服务器实体。Exchange:消息交换机,它指定消息按什么规则,路由到哪个队…

mysql所有版本介绍_mysql各个版本介绍

一、版本说明:MYSQL自从被ORCLE收购后,软件的版本也ORACLE化,整体的感觉就是服务的费用提高了很多,整体的软件的Supports也有相应的提高;MYSQL根据软件的功能可以分成三个版本:社区版、企业版、集群版。社区…

d3js mysql_D3js技术文档 可视化展现

转载请注明http://www.cnblogs.com/juandx/articles/3885220.htmlD3js技术文档概述D3 allows you to bind arbitrary data to a Document Object Model (DOM), and then apply data-driven transformations to the document. For example, you can use D3 to generate an HTML …

text-indent的用法

一、text-indent应用于块级元素 <style type"text/css">*{margin:0;padding:0;}body{font-size:12px;color:#333;}p{text-indent:2em;background-color:#f00;color:#fff;}</style> </head> <body><p>携程旅行网携程旅行网携程旅行网携…

kettle连接mysql教程_kettle 连接 mysql8

kettle默认使用的是org.gjt.mm.mysql.Driver&#xff0c;而mysql 8.0以上connector已经不再支持这个包名;即使将mysql-connector-java-8.0.xx.jar包拷贝到data-integration/lib目录下&#xff0c;还是报错找不到驱动;所以要用jndi方法配置kettle&#xff0c;用com.mysql.cj.jdb…

小白学数据分析--留存率使用的窘境

小白学数据分析--留存率使用的窘境 随着移动游戏整体的火热&#xff0c;现在看到太多的数据&#xff0c;太多信息&#xff0c;很多时候我们仰慕和钦佩别人的成功&#xff0c;我们总是把这个行业达成所谓共识的一些数据来出来说明问题。因为我们笃信数据是有力的证据&#xff0c…

用groovy采集网页数据

首先&#xff0c;用 http://groovyconsole.appspot.com/ 测试下面的代码&#xff0c;发现引用总是失败. 下载了GGTS&#xff1a; https://spring.io/tools/ggts 测试成功&#xff1a; Grapes( Grab(grouporg.ccil.cowan.tagsoup, moduletagsoup, version1.2) )import org.ccil…

vue 时间回显 格式化_VSCode 开发Vue必备插件

1。Vetur —— 语法高亮、智能感知、Emmet等包含格式化功能&#xff0c; AltShiftF &#xff08;格式化全文&#xff09;&#xff0c;CtrlK CtrlF&#xff08;格式化选中代码&#xff0c;两个Ctrl需要同时按着&#xff09;2。EsLint —— 语法纠错3。Debugger for Chrome —— …

公司消费一卡通“变法”记

一卡通在每家公司都存在&#xff0c;不仅含考勤机&#xff0c;还会有门禁&#xff0c;订餐&#xff0c;食堂消费等。我们公司采用的是厦门舒特科技的一卡通系统&#xff0c;前后用了好几年了。 在我之前&#xff0c;一卡通的功能主要启用了考勤和消费这两大模块。 1、考勤机是每…

eslint不报错 vue_2-2【微信小程序全栈开发课程】index页面搭建--ESlint格式错误

1、修改入口文件也就是src/pages/index/main.js文件main.js是入口文件&#xff0c;通过main.js来加载index.vue文件。每个页面文件夹中都要有main.js文件//加载vue组件和index.vue文件 import Vue from vue import App from ./index//新建一个index页面的Vue实例 const app ne…

python弹出另一个窗口_Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法

1.先使用Qt designer设计两个窗口&#xff0c;一个是主窗口&#xff0c;一个是子窗口其中主窗口是新建-Main Window,子窗口是Dialog窗体。两个窗口不能是同一类型,否则会崩溃。并保存为EyeTracking_main.ui和EyeTracking_process.ui(因为我在做眼动追踪&#xff0c;因此窗体命名…

python读取文件数据堆栈溢出的原因_堆栈溢出一般是什么原因?

堆栈是一个在计算机科学中经常使用的抽象数据类型。堆栈中的物体具有一个特性&#xff1a; 最后一个放入堆栈中的物体总是被最先拿出来&#xff0c; 这个特性通常称为后进先出(LIFO)队列。 堆栈中定义了一些操作。 两个最重要的是PUSH和POP。 PUSH操作在堆栈的顶部加入一 个元素…

.NET Core 开发之旅 (1. .NET Core R2安装教程及Hello示例)

前言 前几天.NET Core发布了.NET Core 1.0.1 R2 预览版&#xff0c;之前想着有时间尝试下.NET Core。由于各种原因&#xff0c;就没有初试。刚好&#xff0c;前几天看到.NET Core发布新版本了&#xff0c;决定要去一探究竟。于是乎&#xff0c;就立马去官网查找相关的信息&…

程雷被机器人_太意外了:49岁知名主持人程雷,得遗传性病和女友终分手!

注本文部分文字与图片资源来自于网络&#xff0c;转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益&#xff0c;请立即通知我们&#xff0c;情况属实&#xff0c;我们会第一时间予以删除&#xff0c;并同时向您表示歉意遗传性肝病发女友不离不弃&#x…