MySQL 查询缓存测试

4 篇文章 0 订阅
3 篇文章 0 订阅
<pre name="code" class="sql">
 

查找完MySQL查询缓存的相关资料后,自己做了一些测试,整理如下:

查看MySQL的查询缓存参数设置:

<span style="white-space:pre">	</span>mysql> show variables like 'query_cache%';
<span style="white-space:pre">	</span>+------------------------------+-----------+
<span style="white-space:pre">	</span>| Variable_name                | Value     |
<span style="white-space:pre">	</span>+------------------------------+-----------+
<span style="white-space:pre">	</span>| query_cache_limit            | 1048576   |
<span style="white-space:pre">	</span>| query_cache_min_res_unit     | 4096      |
<span style="white-space:pre">	</span>| query_cache_size             | 134217728 |
<span style="white-space:pre">	</span>| query_cache_type             | ON        |
<span style="white-space:pre">	</span>| query_cache_wlock_invalidate | OFF       |
<span style="white-space:pre">	</span>+------------------------------+-----------+
<span style="white-space:pre">	</span>5 rows in set (0.00 sec)

各个参数的含义
query_cache_limit:
参数为能够缓存的单个查询的结果集最大大小,数据库现在为:1M。
query_cache_min_res_unit:
缓存查询结果集时,每次分配的块大小,如果多数查询的结果集比较大,可以通过调大该参数
提高性能。数据库现在为:4K(4096)。
query_cache_size:
参数为查询缓存能够使用的内存大小,数据库现在为:128M。
query_cache_type:
参数为查询缓存开关,数据库现在为:1/ON
0 / OFF: 表示禁用查询缓存
1 / ON : 开启查询缓存,可以通过指定‘SELECT SQL_NO_CACHE’指定不使用查询缓存。
2 / DEMAND:只有使用‘SELECT SQL_CACHE’查询时使用查询缓存。
query_cache_wlock_invalidate:
表加了写锁时是否让包含该表的查询缓存立即失效。数据库现在为:OFF。


mysql> show status like 'Qcache%';
+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| Qcache_free_blocks      | 902       |
| Qcache_free_memory      | 104841040 |
| Qcache_hits             | 135906729 |
| Qcache_inserts          | 35437870  |
| Qcache_lowmem_prunes    | 1338628   |
| Qcache_not_cached       | 1060101   |
| Qcache_queries_in_cache | 20230     |
| Qcache_total_blocks     | 41884     |
+-------------------------+-----------+
8 rows in set (0.00 sec)

mysql> 


缓存整个数据表大概消耗“.MYD”文件两倍大小的内存。


如page2数据表的磁盘文件大小分别为:


	local:test ytc$ du -ch page2*
	136M	page2.MYD
	4.0K	page2.MYI
	12K	page2.frm
	136M	total
	local:test ytc$ 




查询时不同记录数对应的缓存内存大小为:


Qcache_free_memory..... 999981168
select * from page2 limit 1; 2184
Qcache_free_memory..... 999978984
select * from page2 limit 10; 2768
Qcache_free_memory..... 999976216
select * from page2 limit 100; 13744
Qcache_free_memory..... 999962472
select * from page2 limit 1000; 123544
Qcache_free_memory..... 999838928
select * from page2 limit 10000; 1221544
Qcache_free_memory..... 998617384
select * from page2 limit 100000; 12201544
Qcache_free_memory..... 986415840
select * from page2 limit 1000000; 122001544
Qcache_free_memory..... 864414296
select * from page2 limit 10000000; 255854088
Qcache_free_memory..... 608560208 (2097152 lines)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值