使用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

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

mysql优化-》查询缓存的更多相关文章

  1. mysql的查询缓存模式介绍

    mysql的查询缓存 查询是数据库技术中最常用的操作.查询操作的过程比较简单,首先从客户端发出查询的SQL语句,数据库服务端在接收到由客户端发来的 SQL语句后, 执行这条SQL语句,然后将查询到的结 ...

  2. mysql数据库查询缓存总结

    概述 查询缓存(Query Cache,简称QC),存储SELECT语句及其产生的数据结果.闲来无事,做一下这块的总结,也做个备忘! 工作原理 查询缓存工作原理如下: 缓存SELECT操作的结果集和S ...

  3. MySQL关闭查询缓存(QC)的两种方法

    MySQL Query Cache 会缓存select 查询,安装时默认是开启的,但是如果对表进行INSERT, UPDATE, DELETE, TRUNCATE, ALTER TABLE, DROP ...

  4. 关于ORACLE的硬解析和软解析与MySQL的查询缓存query_cache探讨

    今天在项目中探讨到Oracle对于SQL语句的解析方法以及MySQL相应的处理方法: --------------------------------------------------------- ...

  5. mysql的查询缓存

        查询是数据库技术中最常用的操作.查询操作的过程比较简单,首先从客户端发出查询的SQL语句,数据库服务端在接收到由客户端发来的 SQL语句后, 执行这条SQL语句,然后将查询到的结果返回给客户端 ...

  6. MySQL优化查询 5.7版本

    1. 变更参数 : query_cache_type 如果何配置查询缓存: query_cache_type 这个系统变量控制着查询缓存工能的开启的关闭.query_cache_type=0时表示关闭 ...

  7. mysql查看查询缓存是否启用

    查看查询缓存情况: mysql> show variables like '%query_cache%';  (query_cache_type 为 ON 表示已经开启) +---------- ...

  8. MySQL优化二 缓存参数优化

    数据库属于 IO密集型的应用程序,其主要职责就是数据的管理及存储工作.而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级.所以,要优化数 ...

  9. MySQL优化查询相关

    [查询优化相关] 1.如何定位相关慢的查询: a.可以开启慢查询日志,也可以使用show profiles 去记录相关查询到一个临时表再分析. b.show processlist  看看有没有大量等 ...

  10. mysql优化查询

    使用索引查询 MariaDB [test]> explain select * from te where id=22; #在没有增加索引情况下,rows为7,即查询行数 +------+--- ...

随机推荐

  1. Linux用户管理的复习时间

    所谓三天不练手生,你还记得关于Linux用户管理的所有知识吗?现在就来跟我一起复习一下吧! 1.常用配置文件 用户信息文件: /etc/password 密码文件: /etc/shadow 用户组文件 ...

  2. 》》vue

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  3. MyEclipse激活步骤

    1.前言:   MyEclipse 成功安装后使用天数仅仅有30天,打开软件后常常会弹出提醒我们在5天内要激活的对话框.没有激活的话,时间一到就不能使用了. 众所周知,中国的软件是不用花钱的,这里就介 ...

  4. NFS介绍和安装

    NFS简单介绍 NFS 是Network File System的缩写,即网络文件系统. 一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外发布.功能是通过网络让不同的机器.不同的操作 ...

  5. Android 通知栏Notification的整合 全面学习 (一个DEMO让你全然了解它)

    在android的应用层中,涉及到非常多应用框架.比如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架.通知机制,ActionBar框架等等. ...

  6. C#线程等待句柄

    相互排斥对象 Mutex private Mutex m = new Mutex(); public void Method(){ m.WaitOne(); //运行操作 m.ReleaseMutex ...

  7. Android酷炫有用的开源框架

    一.代码库 1.from  代码家 整理比較好的源代码连接 一.兼容类库 ActionBarSherlock : Action Bar是Android 3.0后才開始支持的,ActionBarSher ...

  8. 【Android使用Shape绘制虚线,在4.0以上的手机显示实线】解决方式

    问题描写叙述: 用下面代码绘制虚线: <span style="font-family:Comic Sans MS;font-size:18px;"><? xml ...

  9. TortoiseSVN的安装和使用

    TortoiseSVN是windows平台下Subversion的免费开源client. 一般我们都是先讲讲server的配置.然后再讲client的使用,可是在TortoiseSVN上.却能够反过来 ...

  10. shell 参数记录

    $0  执行脚本的名称 $* 和 $@ 所有参数 $#  参数个数 $_  上个命令的最后一个参数 $$  代表当前命令所在的pid $!  代表最后执行的 '后台' 命令的pid $? 代表上条命令 ...