当前位置:首页 > 日记 > 正文

MySQL查询缓存描述

MySQL查询缓存描述
从查询缓存的工作原理、如何配置、如何维护、如何确定查询缓存的性能以及合适的业务场景分析五个角度对MySQL查询缓存进行了分析。

工作原理

查询缓存的原理可以概括如下:
结果集和SQL语句缓存选择操作或处理查询(注释:5.1.17开始支持);
新的SELECT语句或预处理查询语句首先查询缓存,确定是否有可用的记录集,并确定标准:是否与缓存的SQL语句相同,它是区分大小写的。

查询缓存不能缓存查询语句的记录集,大致有以下几类:
sql_no_cache参数添加到查询语句。
查询语句包含函数获取值,包括自定义等功能,get_lock CURDATE()()、伦德()、convert_tz等等。
查询系统数据库:MySQL,information_schema
查询语句在存储过程中使用会话级变量或本地变量。
锁共享模式,用于UPDATE语句,在查询语句中使用
查询语句类似于SELECT……到导出数据语句中;
事务隔离级别是:在串行化的情况下,所有的查询语句不能被缓存;
临时表上的查询操作;
具有警告信息的查询语句;
不涉及任何表或视图的查询语句;
用户只有一个等级权限列表。

查询缓存的优点和缺点:

不需要对SQL语句进行任何解析和执行,当然,首先必须从查询缓存中直接进行语法分析,以获得查询结果;
查询缓存的判断规则不够智能,提高了查询缓存的使用门槛,降低了查询效率。
查询缓存的使用会增加检查和查询缓存清理记录集的开销,并且有一个SQL语句缓存表,每个表只能有一个相应的全局锁。

配置

是否启用MySQL查询缓存可以通过2个参数:query_cache_type和query_cache_size,任何参数设置为0,这意味着关闭查询缓存功能,但query_cache_type = 0正确的设置建议。

query_cache_type
范围是:0,没有启用查询缓存;
范围是:1 -启用查询缓存,只要它满足查询缓存的要求,客户机的查询语句和记录集漏斗都可以。
其他客户端缓存和使用。
范围是:2——启用查询缓存。只要查询参数添加到查询:sql_cache,和查询缓存时,客户端的查询语句和记录集可以被缓存和其他客户端使用。

query_cache_size
允许你设置query_cache_size 40K的最小值,最大值是几乎没有限制,实际生产环境中应用的经验告诉我们,价值不大,查询缓存命中率更高,也不降低服务器负荷的贡献,但可能得不偿失,甚至增加服务器负载,至于如何设置以下章节,关于推荐的设置:64m;

query_cache_limit
限制查询缓存查询的记录集,可以避免大量的查询记录集占用内存大面积,往往一个小的查询记录集是最有效的缓存记录设置,默认设置为1M,建议修改16k ~ 1024k之间的范围,但最重要的是分析,根据其应用的实际情况,建立了预测;

query_cache_min_res_unit
设置查询缓存以分配内存的最小单元。适当地设置这个参数,我们可以减少请求的内存块分配的数量,但设置得太大可能导致内存碎片数量上升。默认值为4K,并建议设置为1K ~ 16k

Query_cache_wlock_invalidate
参与MyISAM引擎的主要参数,如果一个客户在一个桌上一个写锁的请求,其他客户端发起的,查询对应的记录查询缓存,是否允许查询缓存记录集的信息直接阅读,或者等待写锁释放。默认设置为0,这是允许。

保持

查询区域内的碎片整理

在使用查询缓存一段时间后,内存碎片通常会发生,因此我们需要监视相关的状态值,并定期做内存碎片排序,而碎片整理的操作语句是同花顺查询缓存。

清除查询缓存的数据
这些操作可能触发查询缓存并清空所有缓存信息,以避免在触发或需要时知道如何操作,以及两种命令可以触发查询缓存数据被清空。
(1)重新设置查询缓存;
(2)刷新表;

性能监测

破碎率
查询缓存内存碎片率= qcache_free_blocks / qcache_total_blocks * 100%

命中率
查询缓存命中率=(qcache_hits - qcache_inserts) / qcache_hits * 100%

内存使用
查询缓存的内存使用率=(query_cache_size - qcache_free_memory) / query_cache_size * 100%

qcache_lowmem_prunes
此参数的值在确定查询缓冲区的内存大小是否设置时起着关键作用。它的含义是:查询缓存,查询缓存的信息从查询缓存删除,因为内存不足,和删除算法LRU。
query_cache_min_res_unit

最小的内存分配单元是非常重要的。内存过大会增加内存碎片的概率,这可能太小,可能会增加内存分配的消耗。为此,在系统的平稳运行阶段之后,我们可以参考公式的计算值。
查询缓存的最小内存块=(query_cache_size - qcache_free_memory) / qcache_queries_in_cache
query_cache_size

我们如何决定是否query_cache_size太小或没有我们还需要设置一个值,可作为32m ~ 128m之间的区域。它需要运行一段时间(至少1周),观察在本周国家相关值。
(1)。qcache_lowmem_prunes;
(2)。命中率;
(3)。内存使用率;

如果监测信息获得的命中率平稳运行超过80%,超过80%的内存使用率,以及qcache_lowmem_prunes不断增加的价值,和增加值太大,那么我们查询内存分配缓冲区太小,可适当增加查询缓存的内存大小;

如果监测得到了小于40%的命中率信息的平稳运行,对qcache_lowmem_prunes值也保持了稳定的状态,然后查询缓存设置过大,或业务场景反复查询相同的概率很低,如果同时也发现一定量的释放项目,然后我们必须考虑查询缓存内存小,甚至关闭查询缓存;

业务场景

通过对上述知识的梳理和分析,我们至少知道了查询缓存的以下几点:
查询缓存可以加快查询语句已经被缓存,而正确的记录集可以得到而无需重新分析和执行。
一个包含查询缓存的表,每个表对象都有属于自己全局属性的锁。
如果你做类似的操作如DDL,刷新表,等等,查询缓存的信息,触发相关的表是空的;
表的DML操作对象必须优先考虑是否对相关查询缓存记录的信息必须被清理,和锁等待事件将不可避免地出现。
查询缓存的内存分配问题不可避免地会产生一些内存碎片。
查询缓存对它是否是相同的查询语句非常苛刻,而且它不是智能的。

当我们回到本节的重点时,查询缓存适合什么样的业务场景只要很清楚,查询缓存的上述优点和缺点并不难列出,则业务场景需要:
整个系统以基于阅读的业务为基础,如门户类型、新闻、报表类型、论坛等。
表格对象的查询语句的操作是不经常使用的DML操作。的query_cache_type = 2模式可以使用,然后SQL语句与sql_cache参数指定;

相关文章

浏览器错误(nvdisp。DRV)浏览器是关

浏览器错误(nvdisp。DRV)浏览器是关

浏览器,错误,解决方案,电脑软件,nvdisp,问题: 在浏览网页时,它往往是错误提示;Explorer错误(nvdisp。DRV)Explorer即将关闭的原因是什么 解决uff1a 以上大部分是NVIDIA图形驱动程序和IE浏览器程序之间的冲突。 uff1a解 1、卸载并重装显卡驱…

winhost是winhost.exe-过程

winhost是winhost.exe-过程

过程,电脑软件,winhost,exe,评论:winhost.exe - winhost过程 进程文件:winhost或winhost.exe 进程名称:Win32。Lolaweb Hijacker 过程类别:安全风险的过程 英文描述: winhost.exe or这意味着它会间歇性地改变你的Internet Explorer设置桌面 /…

解决windows删除文件提示不能删除

解决windows删除文件提示不能删除

删除文件,删除,提示,电脑软件,windows,注释:当您在使用计算机时要删除一个文件时,提示系统无法删除。有一个很好的方法可以参考以下内容。 在我们通常的计算机操作中,我们有时会遇到要删除的文件,但是系统不能删除它。(图1)可以在切换到DOS状态或…

什么是过程daconfig.exedaconfig

什么是过程daconfig.exedaconfig

过程,电脑软件,daconfig,exedaconfig,点评:daconfig.exe是3com网卡诊断程序 进程文件:daconfig或daconfig.exe 进程名称:3com诊断控制台 过程类别:安全风险的过程 英文描述: daconfig.exe是对3Com网络卡范围的诊断工具。,网络,它也被称为对与错…

iOS12为什么要升级?比iOS11优势?

iOS12为什么要升级?比iOS11优势?

iOS12为什么要升级?比iOS11优势?,升级,描述文件,正式版,系统,启动,删除,接收,支持, 【升级理由】 升级iOS 12的理由是什么?因为很多人都已经非常厌倦了iOS 11的卡顿、发热和耗电了,这就是你升级iOS 12的最大动力,而iOS 12最大的特性就是能使iPhone…

win7系统打开的梦幻桌面设置视频到

win7系统打开的梦幻桌面设置视频到

桌面,设置,系统,支持,梦幻,点评:在Vista的极致,微软推出了这个功能,将视频设置实现到桌面。在Windows 7中,微软似乎已经删除了这个功能。不必担心,我们可以通过一个小技巧来实现Windows 7对梦幻桌面的支持。 说到梦想的桌面,这是每个人都清楚,在V…

vcssecs.exe过程的意义是什么

vcssecs.exe过程的意义是什么

意义,过程,电脑软件,vcssecs,exe,评论:对vcssecs.exe工艺简介 进程文件:vcssecs或vcssecs.exe 过程名称:虚拟CD组件 过程类别:安全风险的过程 英文描述: vcssecs.exe是一个虚拟光盘软件,CD相关的过程,它也被称为以下两个方面。 中文参考: 对不起,…

win7bootcamp安装双系统蓝屏的解决

win7bootcamp安装双系统蓝屏的解决

蓝屏,安装,双系统,解决方案,电脑软件,点评:Bootcamp安装双系统,苹果电脑WIN7,如果苹果自己的培训程序的安装,或bootcamp64。蓝屏后会重启,与报告驱动程序不兼容,解决不了在线的问题,在这里跟大家分享一下,自己摸索出来的测试效果不错。 苹果电脑使…

uns.exe的过程是怎样的是uns.exe病

uns.exe的过程是怎样的是uns.exe病

文件,的是,是怎样,过程,程序,点评:你找到了一个在Windows任务管理器uns.exe过程它为什么在运行是病毒吗把一个问题知道什么是uns.exe! 的起源和功能 公共位置:C:程序文件(用于驱动器的系统磁盘C) 本程序是一个守护进程(在没有操作系统的计算机程…

完整卸载MySQL(停止服务、卸载相关

完整卸载MySQL(停止服务、卸载相关

卸载,删除,服务,注册表,完整,1。停止mysql服务 2。卸载MySQL相关程序 3、删除注册表(运行-> regedit),机->系统-> controlset001 / / controlset002 CurrentControlSet ->服务->日志->程序-> MySQL相关的文件。 4。删除MySQL安装目录并保存…

Word2003文档格式的限制

Word2003文档格式的限制

文档格式,电脑软件,如果你限制的文件格式,你可以防止用户应用的风格,你没有显式指定,也可以防止用户直接应用格式文本(例如,一个符号或编号列表,以及字体格式)。限制格式后,对直接应用格式的命令和键盘快捷键将无法使用。 1、点击工具菜单中的保护…

如何在QQ空间启动临时会话

如何在QQ空间启动临时会话

启动,空间,如何在,电脑软件,QQ,你进入'的'中心'的QQ空间;个人权利;';',谁看见我;我见过他;';鼠标的朋友的头,朋友的信息会弹出框,然后点击'图标,‘聊天;如图所示:(注:启动临时前你需要登录到QQ电脑会议)。 温馨提示:如果你点击聊天,然后提示你可…