mysql 查询缓存 query_cache_type
来源:互联网 发布:vxworks网络编程 编辑:程序博客网 时间:2024/05/30 05:20
sql_cache意思是说,将查询结果放入查询缓存中。
sql_no_cache意思是查询的时候不缓存查询结果。
sql_buffer_result意思是说,在查询语句中,将查询结果缓存到临时表中。
这三者正好配套使用。sql_buffer_result将尽快释放表锁,这样其他sql就能够尽快执行。
使用 FLUSH QUERY CACHE 命令,你可以整理查询缓存,以更好的利用它的内存。这个命令不会从缓存中移除任何查询。FLUSH TABLES 会转储清除查询缓存。
RESET QUERY CACHE 使命从查询缓存中移除所有的查询结果。
--------------------------------------------------
那么mysql到底是怎么决定到底要不要把查询结果放到查询缓存中呢?
是根据query_cache_type这个变量来决定的。
这个变量有三个取值:0,1,2,分别代表了off、on、demand。
mysql默认为开启 on
意思是说,如果是0,那么query cache 是关闭的。
如果是1,那么查询总是先到查询缓存中查找,即使使用了sql_no_cache仍然查询缓存,因为sql_no_cache只是不缓存查询结果,而不是不使用查询结果。
select count(*) from innodb;
1 row in set (1.91 sec)
select sql_no_cache count(*) from innodb;
1 row in set (0.25 sec)
如果是2,DEMAND。
在my.ini中增加一行
query_cache_type=2
重启mysql服务
select count(*) from innodb;
1 row in set (1.56 sec)
select count(*) from innodb;
1 row in set (0.28 sec)
没有使用sql_cache,好像仍然使用了查询缓存
select sql_cache count(*) from innodb;
1 row in set (0.28 sec)
使用sql_cache查询时间也一样,因为sql_cache只是将查询结果放入缓存,没有使用sql_cache查询也会先到查询缓存中查找数据
结论:只要query_cache_type没有关闭,sql查询总是会使用查询缓存,如果缓存没有命中则开始查询的执行计划到表中查询数据。
sql_no_cache意思是查询的时候不缓存查询结果。
sql_buffer_result意思是说,在查询语句中,将查询结果缓存到临时表中。
这三者正好配套使用。sql_buffer_result将尽快释放表锁,这样其他sql就能够尽快执行。
使用 FLUSH QUERY CACHE 命令,你可以整理查询缓存,以更好的利用它的内存。这个命令不会从缓存中移除任何查询。FLUSH TABLES 会转储清除查询缓存。
RESET QUERY CACHE 使命从查询缓存中移除所有的查询结果。
--------------------------------------------------
那么mysql到底是怎么决定到底要不要把查询结果放到查询缓存中呢?
是根据query_cache_type这个变量来决定的。
这个变量有三个取值:0,1,2,分别代表了off、on、demand。
mysql默认为开启 on
意思是说,如果是0,那么query cache 是关闭的。
如果是1,那么查询总是先到查询缓存中查找,即使使用了sql_no_cache仍然查询缓存,因为sql_no_cache只是不缓存查询结果,而不是不使用查询结果。
select count(*) from innodb;
1 row in set (1.91 sec)
select sql_no_cache count(*) from innodb;
1 row in set (0.25 sec)
如果是2,DEMAND。
在my.ini中增加一行
query_cache_type=2
重启mysql服务
select count(*) from innodb;
1 row in set (1.56 sec)
select count(*) from innodb;
1 row in set (0.28 sec)
没有使用sql_cache,好像仍然使用了查询缓存
select sql_cache count(*) from innodb;
1 row in set (0.28 sec)
使用sql_cache查询时间也一样,因为sql_cache只是将查询结果放入缓存,没有使用sql_cache查询也会先到查询缓存中查找数据
结论:只要query_cache_type没有关闭,sql查询总是会使用查询缓存,如果缓存没有命中则开始查询的执行计划到表中查询数据。
0 0
- mysql 查询缓存 query_cache_type
- mysql 查询缓存 query_cache_type
- 关于MYSQL 查询缓存
- mysql 查询缓存
- MySQL 查询缓存数据库
- MySQL查询缓存优化
- MySQL清除查询缓存
- mysql查询缓存
- MySQL查询缓存状态
- MySQL查询缓存设置
- mysql的查询缓存
- mysql查询缓存
- mysql查询缓存
- MySql查询缓存机制
- MySql:查询缓存机制
- MySQL 查询缓存
- MySQL 查询缓存
- mysql无缓存查询
- # hihicoder #1038 : 01背包
- query cache 的内存使用和调优
- JS Replace
- 配置Jndi
- Android 可拖拽 GridView 并且实时切换和拖动到下部删除
- mysql 查询缓存 query_cache_type
- javax.mail 发送
- 命令行-查看端口占用,并且关闭占用程序
- masonry的autolayout(二)
- arm学习之stm32f资料
- opencv实现图像的拼接功能
- Mysql查询缓存碎片、缓存命中率及Nagios监控
- MySQL 5.6 my.cnf 参数说明
- hdu 5449 Robot Dog(期望+lca)