可以在SELECT语句中指定查询缓存相关选项:

·

SQL_CACHE

如果query_cache_type系统变量的值是ON或DEMAND,查询结果被缓存。

·

SQL_NO_CACHE

查询结果不被缓存。

示例:

SELECT SQL_CACHE id, name FROM customer;

SELECT SQL_NO_CACHE id, name FROM customer;

5.13.3. 查询高速缓冲配置

通过have_query_cache服务器系统变量指示查询缓存是否可用:

mysql>SHOW VARIABLES LIKE 'have_query_cache';

+------------------+-------+

| Variable_name | Value |

+------------------+-------+

| have_query_cache | YES |

+------------------+-------+

即使禁用查询缓存,当使用标准 MySQL二进制时,这个值总是YES。

其它几个系统变量控制查询缓存操作。当启动mysqld时,这些变量可以在选项文件或者命令行中设置。所有查询缓存系统变量名以query_cache_

开头。它们的详细描述见5.3.3节,“服务器系统变量”,还给出了额外的配置信息。

为了设置查询缓存大小,设置query_cache_size系统变量。设置为0表示禁用查询缓存。

默认缓存大小设置为0;也就是禁用查询缓存。

当设置query_cache_size变量为非零值时,应记住查询缓存至少大约需要40KB来分配其数据结构。(具体大小取决于系统结构)。如果你把该值设置的太小,将会得到一个警告,如本例所示:

mysql> SET GLOBAL

query_cache_size = 40000;

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> SHOW

WARNINGS\G

*************************** 1. row

***************************

Level: Warning

Code: 1282

Message: Query cache failed to set size 39936; new query

cache size is 0

mysql> SET GLOBAL

query_cache_size = 41984;

Query OK, 0 rows affected (0.00 sec)

mysql> SHOW VARIABLES LIKE

'query_cache_size';

+------------------+-------+

|

Variable_name | Value |

+------------------+-------+

| query_cache_size | 41984 |

+------------------+-------+

如果查询缓存大小设置为大于0,query_cache_type变量影响其工作方式。这个变量可以设置为下面的值:

·

0或OFF将阻止缓存或查询缓存结果。

·

1或ON将允许缓存,以SELECT

SQL_NO_CACHE开始的查询语句除外。

·

2或DEMAND,仅对以SELECT

SQL_CACHE开始的那些查询语句启用缓存。

设置query_cache_type变量的GLOBAL值将决定更改后所有连接客户端的缓存行为。具体客户端可以通过设置query_cache_type变量的会话值控制它们本身连接的缓存行为。例如,一个客户可以禁用自己的查询缓存,方法如下:

mysql> SET SESSION

query_cache_type = OFF;

要控制可以被缓存的具体查询结果的最大值,应设置query_cache_limit变量。

默认值是1MB。

当一个查询结果(返回给客户端的数据)从查询缓冲中提取期间,它在查询缓存中排序。因此,数据通常不在大的数据块中处理。查询缓存根据数据排序要求分配数据块,因此,当一个数据块用完后分配一个新的数据块。因为内存分配操作是昂贵的(费时的),所以通过query_cache_min_res_unit系统变量给查询缓存分配最小值。当查询执行时,最新的结果数据块根据实际数据大小来确定,因此可以释放不使用的内存。根据你的服务器执行查询的类型,你会发现调整query_cache_min_res_unit变量的值是有用的:

·

query_cache_min_res_unit默认值是4KB。这应该适合大部分情况。

·

如果你有大量返回小结果数据的查询,默认数据块大小可能会导致内存碎片,显示为大量空闲内存块。由于缺少内存,内存碎片会强制查询缓存从缓存内存中修整(删除)查询。这时,你应该减少query_cache_min_res_unit变量的值。空闲块和由于修整而移出的查询的数量通过Qcache_free_blocks和Qcache_lowmem_prunes变量的值给出。

·

如果大量查询返回大结果(检查

Qcache_total_blocks和Qcache_queries_in_cache状态变量),你可以通过增加query_cache_min_res_unit变量的值来提高性能。但是,注意不要使它变得太大(参见前面的条目)。

mysql 缓冲查询_MySQL查询高速缓冲相关推荐

  1. mysql 性能查看_MySQL查询性能问题排查

    Mysql数据库的性能问题排查是十分复杂的,具体方法视场景而定,这里只做大致思路分析. 1. 整体考虑导致查询性能低下的各种因素 导致SQL查询变慢的原因是多元化的,在遇到问题时首先要有一个全方位的思 ...

  2. mysql求和 子查询_MYSQL 查询方法 统计查询 链接查询 子查询

    mysql表格查询方法: 查询: 1.简单查询 select * from Info --查所有数据 select Code,Name from Info --查指定列的数据 select Code ...

  3. 在mysql中通配符_mysql查询中通配符的使用

    mysql查询中通配符的使用 在mysql查询中经常会使用通配符,并且mysql的通配符和pgsql的存在区别(稍候再讨论),而且mysql中还可以使用正则表达式. SQL模式匹配: "_& ...

  4. mysql 廖雪峰_mysql查询(廖雪峰sql教程学习摘录)

    mysql默认不区分大小写 条件查询 select * from students                                                            ...

  5. mysql 严格区分大小写_Mysql查询英文如何严格区分大小写?

    1. 前提: 在Mysql数据库中进行查询时,希望英文严格区分大小写.默认情况下是不区分大小写的. 2. 演示如下: 在数据库表emp中,job字段中存储的值有'Engineer',现在的情况是,下面 ...

  6. 怎么查mysql数据库版本信息查询_mysql 查询版本(mysql查询数据库版本信息)

    mysql 查询版本(mysql查询数据库版本信息) 2020-07-24 11:32:43 共10个回答 1.通过mysql的-V参数查询版本信息mysql-V2.登录mysql时可以查询版本信息m ...

  7. mysql 查找数据_Mysql查询数据

    查询语句 单表查询 1.1 全表查寻 select * from employee; 复制代码1.2 指定字段查询 查询职员表中所有职员姓名和入职时间 select empname,hirdate f ...

  8. mysql 语句检查_mysql查询语句

    一.简单查询 1.最简单查询(查所有数据) select * from 表名   注意:* 代表所有列,并不是代表所有行 例:select * from test 2.查询指定列 select 列名, ...

  9. mysql 前索引_MySQL查询性能优化前,必须先掌握MySQL索引理论

    数据库索引在平时的工作是必备的,怎么建好索引,怎么使用索引,可以提高数据的查询效率.而且在面试过程,数据库的索引也是必问的知识点,比如: 索引底层结构选型,那为什么选择B+树? 不同存储引擎的索引的体 ...

最新文章

  1. 被Python「苦虐」的日子太惨了!
  2. Less 常用基础知识
  3. 在Linux下gcc缺省编译,在Linux下GCC将文件合起来编译
  4. 【Android 电量优化】电量优化 ( Battery Historian 环境要求 | 电量分析报告 | 电量优化三原则 | 电量优化注意事项 )
  5. ios-NSMutableAttributedString 更改文本字符串颜色、大小
  6. NYOJ 240 小明的调查统计(二)
  7. 微信WeixinJSBridge API
  8. 基于TableStore构建简易海量Topic消息队列
  9. GPU事务性内存技术研究
  10. [Android5 系列—] 2. 开始另外一个活动
  11. 【软件工程】第一次阅读作业
  12. 云计算之Docker
  13. Tensorflow笔记:神经网络优化
  14. matlab色度椭圆,matlab画色度图
  15. gwt执行ajax,使用GWT开发AJAX应用程序
  16. 云台山风景区茶园骑共享单车,游玩茶园的每一个角落
  17. python打包flask项目exe
  18. 大疆产品上岸经验分享
  19. 梁宁——用户体验地图和用户故事(阅读总结)
  20. 有没有html代码听力的软件吗,英语听力软件哪个好?2017英语听力软件排行榜

热门文章

  1. mysql 数据库导出全部数据到excel,并保存为不同的sheet
  2. php 指定域名的cookie,php如何设置cookie对整个域名有效?
  3. python未来人工智能主流_python深度学习,未来人工智能三大境界的划分
  4. CF1062E Company
  5. Python 异常处理——处理默认错误类型以外错误
  6. APIO2010巡逻(树上带权直径)
  7. mysql环境变量的配置
  8. 响应在此上下文中不可用
  9. 常见web攻击方式与防御方法
  10. Intel Pin架构