使用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. AspNet Core Api Restful 实现微服务之旅 (一)

    (一)了解微服务(二)搭建VS项目框架  (三)创建AspNet Core Api VS2017 安装包   链接:https://pan.baidu.com/s/1hsjGuJq 密码:ug59 创 ...

  2. 来腾讯云开发者实验室 学习.NET Core 2.0

    腾讯云开发者实验室为开发者提供了一个零门槛的在线实验平台,开发者实验室提供的能力: 零门槛扫码即可免费领取实验机器,支持使用自有机器参与,实验完成后支持保留实验成果: 在线 WEB IDE 支持 sh ...

  3. Cocos2d-x3.0 触摸事件

    TouchableSpriteTest auto winSize = Director::getInstance()->getWinSize(); Point origin = Director ...

  4. Android-Dalvik指令集

    转载请标明出处:http://blog.csdn.net/goldenfish1919/article/details/40821777 原文:http://pallergabor.uw.hu/and ...

  5. 【zabbix系列】安装与加入host

    測试环境 Ubuntu 14.04.1 LTS [服务端安装] 关于安装官方提供了非常具体的安装方法,包含各平台的源代码及包安装.关于其它版本号Linux请參考 https://www.zabbix. ...

  6. C# 文件去仅仅读工具-线程-技术&分享

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  7. Python 安装 BeautifulSoup(Win7)

    准备材料: 1.Win7,已安装的 Python3.4.1 2.BeautifulSoup4.3.2安装包 安装办法: 1.打开cmd 2,进入BeautifulSoup的解压文件夹 3,执行 pyt ...

  8. Creational模式之Builder模式

    1.意图 将一个复杂对象的构建与它表示分离,使得相同的构建过程能够创建不同的表示. 查看很多其它请点击 2.别名 无 3.动机 一个RTF(Rich Text Format)文档交换格式的阅读器应能将 ...

  9. jquery通过数值改变球大小

    在业务中遇到一个问题:在页面上显示一个球.且球的大小会应数字的大小而改变. 我们都知道 js是能够画圆(用css样式准备一个圆.假设addClass),但这并非我们想要的. 于是笔者脑洞打开:用样式画 ...

  10. 自学Zabbix3.6.2-触发器triggers severity严重程度

    触发器严重性定义了触发器的重要性. 1. zabbix支持以下触发级别: SEVERITY DEFINITION 颜色 Not classified 未知. 灰色 Information 一般信息. ...