从 MySQL4开始,出现了QueryCache查询缓存,如果使用了QueryCache,当查询接收到一个和之前同样的查询,服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询。这样就大大提高了性能,节省时间,非常有用。

打开查询缓存,是通过几个步骤来设置的,例如:虽然你设置Mysql允许查询缓存,但是如果你设置的查询缓存大小为了0,这和没有允许没什么区别。所以必须是几个步骤的设置才能真正打开查询缓存这个功能。

下面我用 mysql6.0 最为演示最常用的设置查询缓存

第一: query_cache_type 使用查询缓存的方式

一般,我们会把 query_cache_type 设置为 ON,默认情况下应该是ON

mysql> select @@query_cache_type;

+——————–+

| @@query_cache_type |

+——————–+

| ON |

+——————–+

这样 当我们执行 select id,name from tableName; 这样就会用到查询缓存。在 query_cache_type 打开的情况下,如果你不想使用缓存,需要指明select sql_no_cache id,name from tableName;当然也可以禁用查询缓存: mysql> set session uery_cache_type=off;

这里我们不讨论这个,我们演示常用的设置。

第二: 系统变量 have_query_cache 设置查询缓存是否可用

mysql> show variables like 'have_query_cache';

+——————+——-+

| Variable_name | Value |

+——————+——-+

| have_query_cache | YES |

+——————+——-+

上面的显示,表示设置查询缓存是可用的。

第三: 系统变量 query_cache_size

表示查询缓存大小,也就是分配内存大小给查询缓存,如果你分配大小为0,

那么 第一步 和 第二步 起不到作用,还是没有任何效果。

mysql> select @@global.query_cache_size;

+—————————+

| @@global.query_cache_size |

+—————————+

| 16777216 |

+—————————+

上面是 mysql6.0设置默认的,之前的版本好像默认是0的,那么就要自己设置下。

设置 set @@global.query_cache_size=1000000; 这里是设置1M左右,900多K。

再次查看下 select @@global.query_cache_size;

+—————————+

| @@global.query_cache_size |

+—————————+

| 999424 |

+—————————+

显示我们设置新的大小,表示设置成功。

第四: query_cache_limit 控制缓存查询结果的最大值

例如: 如果查询结果很大, 也缓存????这个明显是不可能的。

MySql 可以设置一个最大的缓存值,当你查询缓存数结果数据超过这个值就不会

进行缓存。缺省为1M,也就是超过了1M查询结果就不会缓存。

mysql> select @@global.query_cache_limit;

+—————————-+

| @@global.query_cache_limit |

+—————————-+

| 1048576 |

+—————————-+

这个是默认的数值,如果需要修改,就像设置缓存大小一样设置,使用set重新指定大小。

好了,通过4个步骤就可以 打开了查询缓存,具体值的大小和查询的方式 这个因不同的情况来指定了。

有关MySQL查询缓存更详细的介绍请看:http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html#query-cache

转自:http://hi.baidu.com/aganle/blog/item/49e4703983110b2cb9998f7c.html

mysql 查询缓存设置_MySQL查询缓存设置 提高MySQL查询性能相关推荐

  1. mysql isam参数优化_MySQL MyISAM优化设置点滴

    query_cache - 如果你的应用程序有大量读,而且没有应用程序级别的缓存,那么这很有用.不要把它设置太大了,因为想要维护它也需要不少开销,这会导致MySQL变慢.通 常设置为 32-512Mb ...

  2. mysql缓存页_mysql优化-缓存篇

    在整体的系统运行过程中,数据库服务器 MySQL 的压力是最大的,不仅占用很多的内存和 cpu 资源,而且占用着大部分的磁盘 io 资源,连 PHP 的官方都在声称,说 PHP 脚本 80% 的时间都 ...

  3. mysql slow设置_mysql slow log设置

    1.mysql slow query log参数设置 首先简单的介绍一下如何开启mysql的slowlog,主要设置一下几个参数: 1)–slow_query_log = 1,开启slowlog. 2 ...

  4. mysql查看当前字符集_Mysql 查看字符集设置

    MySQL 乱码的根源是的 MySQL 字符集设置不当的问题,本文汇总了有关查看 MySQL 字符集的命令.包括查看 MySQL 数据库服务器字符集.查看 MySQL 数据库字符集,以及数据表和字段的 ...

  5. mysql连接数设置_MySQL最大连接数设置

    "Can not connect to MySQL server. Too many connections"-mysql 1040错误, 这是因为访问MySQL且还未释放的连接数 ...

  6. mysql 连接 字符集设置_Mysql 字符集的设置和修改

    Show variables like 'character%';  //显示目前mysql默认 字符集 显示数据连接字符集 修改字符集 D:\mysql>Net stop mysql   // ...

  7. mysql子查询查询子字段_MySQL知识整理7.4—子查询

    数据科学探路者:MySQL知识整理7.3-连接查询​zhuanlan.zhihu.com 四.子查询 什么是子查询? 当一个查询是另一个查询的条件时,称之为子查询.子查询可以使用几个简单命令构造功能强 ...

  8. mysql连接编码设置_MySQL基础 - 编码设置

    刚开始工作的时候,在工作中遇到的与数据库相关的问题,多半跟编码有关,总结一下数据库编码的设置. 字符集 查看数据库支持的字符集: mysql> SHOW CHARACTER SET; 从图中可以 ...

  9. mysql 去重后拼接_mysql学习笔记(三)—— 查询select

    本节主要介绍查询语句(select),包括基础查询.条件查询.模糊查询,以及一些常用函数包括:去重函数distinct.字符拼接函数concat.null判断函数ifnull. 内容都是自己学习后从S ...

  10. MySQL延时更改数据_mysql数据库备份设置延时备份方法(mysql主从配置)

    一 为什么需要延时备份 percona-xtrabackup是一个优秀的用于增量备份的工具.今天我们讲到的延时备份也是使用他们的产品. 以前在MySQL AB复制一文中提到了AB复制.我们首先回顾下M ...

最新文章

  1. 2018/8/30-31 A social learning particle swarm optimization for scalable optimization.
  2. SimpleDelegate 委托
  3. Opencv 实现图像的离散傅里叶变换(DFT)、卷积运算(相关滤波)
  4. 【个人总结】知识晶体的前中后台
  5. Oracle编程入门经典 第2章 SQLPlus和基本查询
  6. python高斯滤波和降噪_python添加高斯噪声和椒盐噪声,实现中值滤波和均值滤波,实现Roberts算子和Sobel算子...
  7. 【译】什么是React Hooks
  8. Android 编程下帧动画在 Activity 启动时自动运行的几种方式
  9. “中文直达”能推动移动上网入口洗牌吗?
  10. XML的常用领域及其优势
  11. 百度云网盘高速通道加速破解版 去广告纯净版干净云
  12. codeigniter mysql查询_codeigniter数据库操作函数汇总
  13. 4399小游戏怎样下载到本地玩
  14. 朱晔的互联网架构实践心得S2E7:漫谈平台架构的工作(基础架构、基础服务、基础平台、基础中间件等等)
  15. 二维码扫描枪对接手册
  16. mac如何共享网络?mac怎么建立wifi热点?
  17. redis:客户端管理
  18. python解析pdf,读取文字,可识别两栏pdf等
  19. 新手如何使用Cheat Engine (CE) 来修改“我的世界“?
  20. 人工神经网络图像识别,神经网络如何识别图像

热门文章

  1. arpg刷怪爆装备java游戏,刷怪爆装备的单机游戏(大番茄魔改地下城与勇士)
  2. redis的linux安装
  3. 2017-06-27
  4. MySQL -- 行转列 -- GROUP_CONCAT -- MAX(CASE WHEN THEN)
  5. Knockout v3.4.0 中文版教程-14-控制文本内容和外观-style绑定
  6. leetcode 137[转]
  7. Websphere 手动模拟删除应用操作
  8. SQL Server时间粒度系列----第4节季、年时间粒度详解
  9. 为什么有人说瑞士银行是全世界最安全的银行?
  10. 科比退役时间什么时候