MySQL缓存查询

show global status like '%qcache%'; 
show global status like 'created_tmp%';
-- 通过设置tmp_table_size选项来增加一张临时表的大小,例如做高级GROUP BY操作生成的临时表。
-- 如果调高该值,MySQL同时将增加heap表的大小,可达到提高联接查询速度的效果,建议尽量优化查询,
-- 要确保查询过程中生成的临时表在内存中,避免临时表过大导致生成基于硬盘的MyISAM表。

-- 每次创建临时表,Created_tmp_tables增加,如果临时表大小超过tmp_table_size,则是在磁盘上创建临时表,
-- Created_tmp_disk_tables也增加,Created_tmp_files表示MySQL服务创建的临时文件文件数,比较理想的配置是:
-- Created_tmp_disk_tables / Created_tmp_tables * 100% <= 25%
-- 比如上面的服务器Created_tmp_disk_tables / Created_tmp_tables * 100% =1.20%,应该相当好了
-- 默认为16M,可调到64-256最佳,线程独占,太大可能内存不够I/O堵塞
-- 如果动态页面要调大点,100M以上,如果网站大部分都是静态内容,一般64M足够。

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 查询缓存中的块的总数目
Qcache_free_memory 可以缓存一些常用的查询,如果是常用的sql会被装载到内存。那样会增加数据库访问速度

-- 如果出现此异常   Copying to tmp table , 说明下面的值设置的小了
-- 二者结果取最小值,所以最好设置一样,此结果是Connection级别的,所以不能太大
SELECT @@tmp_table_size /1024/1024  得到的结果单位是 M
SELECT @@max_heap_table_size /1024/1024  得到的结果单位是 M

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×