博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql优化-》查询缓存
阅读量:5933 次
发布时间:2019-06-19

本文共 1231 字,大约阅读时间需要 4 分钟。

使用MySql查询缓存(query_cache_size)

MySql中查询缓存的原理:

其实是MySql创建了一个临时的空间叫Qcache(这个空间生成在MySql的编译器内存中),这个空间的大小是用字节大小来计算,所以缓存多少数据可以根据需求进行调节.如果是第一次查询,则从硬盘找查找并返回结果,如果有记录返回Qcache会记录查找到的结果,当用户发出第二次查询,MySql就会询问Qcache是否已经存在了这个查询。如果存在则从Qcache中返回查询结果,如果不存在则又一次从硬盘中查找结果并把找到的结果放到Qcache当中.

1.使用MySql查询缓存

语法规则: set global query_cache_size = 开辟内存的字节大小

比如我们要把一个Qcache的查询缓存的空间设置为64M,那么我们可以使用以下命令:

set global query_cache_size = 64 * 1024 * 1024

换算原理如下:

64M = ?字节

1kb = 1024 字节

1M = 1024KB = 1024 * 1024字节

64M = 64 * 1024 * 1024

默认的情况下,mysql是没有开启查询缓存的功能

没有开启查询缓存,那么无论你查多少次数据库都是去硬盘当中查找数据,因此速度不会发生很多的时间差,然后现在设置查询缓存Qcache的空间为64M后在来查看结果,详细步骤如下:

 

1步:使用命令set global query_cache_size = 64 * 1024 * 1024 设置查询缓存的空间(Qcache的空间)

不出现任何的错误就代表设置成功,就代表当前开启了查询缓存,并且拥有64M的临时内存空间。

2步:再次测试select * from  tbl_no where username=’itheima’查看结果

1次查询:4.78sec,并且Qcache会记录当前的查询结果

2,3,4...次查询:0sec,从Qcache中返回结果,发觉速度提升了很多倍

总结:查询缓存是一种非常简单的手段,只需要一个简单命令设置空间的字节大小就能完成这个优化技术,然而查询缓存是需要付出代价的,因为查询缓存会占据内存的空间,因此如果你开启很多的内存空间,而内存空间爆满了,那么计算机的操作系统有可能会缓慢甚至重启,因此查询缓存是在一个公司创立时候大概只有100万条数据左右的时候建议使用,如果你数据已经超过千万级别访问量又特别的大的时候,查询缓存极有可能造成服务器的重启或者内存的崩溃.

注意事项:查询缓存对整个数据库都有效

2.关闭MySql查询缓存

语法规则: set global query_cache_size = 0

关闭后,缓存就会失效,之前的查询结果全部又会到硬盘当中去查找了

 

转载于:https://www.cnblogs.com/peipeiyu/p/7751647.html

你可能感兴趣的文章
软工概论第十四周总结
查看>>
asp.net 同时执行js事件和代码事件 导出 excel
查看>>
Android混合应用开发之页面跳转
查看>>
java继承后构造函数的继承机制
查看>>
ASP.NET编译执行常见错误及解决方法汇总之一
查看>>
ORACLE 12C RMAN 功能增强
查看>>
JAVA对象的序列化和反序列化
查看>>
NYOJ477A+B Problem III
查看>>
C# 自动运行代码 (创建windows 服务的形式 )
查看>>
Python的几个常用模块
查看>>
WPF柱状图(支持数据库动态更新)
查看>>
对于这次宋老师布置的团队项目所使用的开发模式的想法
查看>>
Android中运行的错误:java.lang.UnsatisfiedLinkError: Couldn't load locSDK3: findLibrary returned null....
查看>>
react传递方法 警告
查看>>
linux FTP配置详解
查看>>
Oem7特殊机型激活提交处
查看>>
mysql数据库从删库到跑路之mysql库操作
查看>>
【练习】NSFile
查看>>
自己做的demo---c语言的基本语法,过阵子可以重新写一些算法跟数据结构了
查看>>
spring cloud 消费者
查看>>