mysql中的SQL_CACHE(性能更优化)
mysql中的sql_cache是个容易忽视的地方,要 
使用的话,必须先设置query_cache_size,
以及设置query_cache_type ,其中
query_cache_type 这个可以被设置为 (只能是数字) 选项  含义 
0  (OFF, 不缓存或重新得到结果) 
1  (ON, 缓存所有的结果,除了 SELECT SQL_NO_CACHE ... 查询) 
2  (DEMAND, 仅缓存 SELECT SQL_CACHE ... 查询)
所以设置为1时,可以如下这样查询的话,会用到缓存
SELECT SQL_CACHE something FROM table
强制不使用缓存
SELECT SQL_NO_CACHE id,field FROM table WHERE 1
使用 FLUSH QUERY CACHE 命令,你可以整理查询缓存,以更好的利用它的内存。这个命令不会从缓存中移除任何查询。FLUSH TABLES 会转储清除查询缓存。
RESET QUERY CACHE 使命从查询缓存中移除所有的查询结果。
你可以检查查询缓存在你的 MySQL 是否被引进:
mysql> SHOW VARIABLES LIKE 'have_query_cache';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| have_query_cache | YES   |
+------------------+-------+
1 row in set (0.00 sec)
在 SHOW STATUS 中,你可以监视查询缓存的性能:
变量  含义 
Qcache_queries_in_cache  在缓存中已注册的查询数目 
Qcache_inserts  被加入到缓存中的查询数目 
Qcache_hits  缓存采样数数目 
Qcache_lowmem_prunes  因为缺少内存而被从缓存中删除的查询数目 
Qcache_not_cached  没有被缓存的查询数目 (不能被缓存的,或由于 QUERY_CACHE_TYPE) 
Qcache_free_memory  查询缓存的空闲内存总数 
Qcache_free_blocks  查询缓存中的空闲内存块的数目 
Qcache_total_blocks  查询缓存中的块的总数目
Total number of queries = Qcache_inserts + Qcache_hits + Qcache_not_cached.
查询缓存使用变长的块,因而 Qcache_total_blocks 和 Qcache_free_blocks 可能显示查询缓存的碎片。在 FLUSH QUERY CACHE 之后,只有剩余一个单独的(大的)空闲块。
注意:每个查询最小需要两个块(一个用于存储查询文本,另一个或多个用于存储查询结果)。同样的,每个被一个查询使用的表需要一个块,但是,如果有两个或更多的查询使用同一张表,仅仅只需要分配一个块就行了。
你可以使用状态变量 Qcache_lowmem_prunes
来谐调查询缓存尺寸。它计数被从缓存中移除的查询,该查询的移除是为了释放内存,以缓存新建的查询。查询缓存使用一个 least recently
used (LRU) 策略来判断从缓存中移除哪个查询。
mysql中的SQL_CACHE(性能更优化)的更多相关文章
- mysql中影响数据库性能的因素讲解
		
mysql中影响数据库性能的因素讲解 在本篇文章中我们给大家讲述了mysql中影响性能的因素以及相关知识点内容,有兴趣的朋友参考下 关于数据库性能的故事 面试时多多少少会讲到数据库上的事情,“你对数据 ...
 - MySQL中的SQL的常见优化策略
		
MySQL中的SQL的常见优化策略 MySQL中的索引优化 MySQL中的索引简介 1 避免全表扫描对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索 ...
 - MySQL中Index Condition Pushdown(ICP)优化
		
在MySQL 5.6开始支持的一种根据索引进行查询的优化方式.之前的MySQL数据库版本不支持ICP,当进行索引查询是,首先根据索引来查找记录,然后在根据WHERE条件来过滤记录.在支持ICP后,My ...
 - 在MySQL中如何使用覆盖索引优化limit分页查询
		
背景 今年3月份时候,线上发生一次大事故.公司主要后端服务器发生宕机,所有接口超时.宕机半小时后,又自动恢复正常.但是过了2小时,又再次发生宕机. 通过接口日志,发现MySQL数据库无法响应服务器.在 ...
 - MySQL中关于OR条件的优化
		
转载 MySQL在 5.0版本中引入新特性:索引合并优化(Index merge optimization),当查询中单张表可以使用多个索引时,同时扫描多个索引并将扫描结果进行合并. 该特新主要应用于 ...
 - Mysql中谓词使用date_format的优化
		
优化前: SELECT a.* FROM t1 a, (SELECT obj_id,MAX(PRE_DETAIL_INST_ID) PRE_DETAIL_INST_ID FROM t1 WHERE D ...
 - MySQL中怎么将LIMIT分页优化?
		
1.语法: *** limit [offset,] rows 一般是用于select语句中用以从结果集中拿出特定的一部分数据. offset是偏移量,表示我们现在 ...
 - mysql中explain看性能
		
select distinct col_name from table where a=X and b=Y and date(time)='xx-xx-xx';执行时间 27.9772 秒 expla ...
 - MySQL中的索引优化
		
MySQL中的SQL的常见优化策略 MySQL中的索引优化 MySQL中的索引简介 过多的使用索引将会造成滥用.因此索引也会有它的缺点.虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行 ...
 
随机推荐
- Golang TCP转发到指定地址
			
Golang TCP转发到指定地址 第二个版本,设置指定ip地址 代码 // tcpForward package main import ( "fmt" "net&qu ...
 - .Net Core依赖注入中TryAddEnumerable 和TryAddTransient方法的区别
			
.Net Core依赖注入添加的每个服务,最终都会转换为一个ServiceDescriptor的实例,ServiceDescriptor包含以下属性: Lifetime:服务的生命周期(Singlet ...
 - vue-cli webpack配置cdn路径 以及 上线之后的字体文件跨域处理
			
昨天搞了一下vue项目打包之后静态资源走阿里云cdn. 配置了半天,终于找到了设置的地方 config/index.js 里面设置build 下的 assetsPublicPath 打包的时候便可以添 ...
 - 记一次低级错误导致的mysql(111)
			
今天下午配好的双主多从服务器,两台主机+主机内安装好的6台虚拟机,两台Mysql master各授权好其slave的远程登录,原本好端端的能远程登录,晚上回来时候就发现其中一台master登录不上其s ...
 - python爬取+使用网易卡搭作品数量api
			
第一步,当然是打开浏览器~ 然后打开卡搭~ 看着熟悉的界面,是不是有点不知所措? 这就对了,咱找点事情干干. 随便找个倒霉蛋,比如这位:"混世大王",打开他的主页! 按下f12(我 ...
 - Django Model one
			
models :URL---->http://www.cnblogs.com/wupeiqi/p/6216618.html null 数据库中字段是否可以 ...
 - mysql update连表
			
UPDATE price_air_item t1 LEFT JOIN order_item t2 ON t1.ORDER_ITEM_ID = t2.ORDER_ITEM_ID SET t1.BUYER ...
 - dubbo与zk注册中心如何对接,如何做到服务自动发现
			
先看下consumer端发起调用时的链路流程: +---------------------------+ +---------------------------+ +--------------- ...
 - 大数据学习——kettle的简单使用
			
1 生成随机数保存到本地文件 新建转换--输入--生成随机数--输出--文本文件输出--保存到本地文件 2 在线预览生成结果 3 字段选择 4 增加常量 5 生成多条数据 右键生成随机数--改变开始复 ...
 - jquery版列表切换功能
			
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...