如果 MySQL Server 负载比较高,处理非常繁忙的话,可以启动Query Cache 以加速响应时间,启动方法可以在my.cnf(Linux)或my.ini(Windows)中加入不以下项目:(Redhat下面是:/etc /my.cnf;Debian和Ubuntu是在/etc/mysql/my.cnf) query_cache_size = 268435456
query_cache_type = 1
query_cache_limit = 1048576 以上语句的设置中 query_cache_size 是分配256M内存给Query Cache;query_cache_type=1,是给所有的查询做Cache;query_cache_limit 是指定个别的查询语句1MB的内存。这些数据可以根据自己的需求作出适当的更改,设置完成之后,保存文档,重新启动MySQL即可。query_cache_type 0 代表不使用缓冲, 1 代表使用缓冲,2 代表根据需要使用。设置 1 代表缓冲永远有效,如果不需要缓冲,就需要使用如下语句:SELECT SQL_NO_CACHE * FROM my_table WHERE ...如果设置为 2 ,需要开启缓冲,可以用如下语句:SELECT SQL_CACHE * FROM my_table WHERE ...用 SHOW STATUS 可以查看缓冲的情况:mysql> show status like 'Qca%';| Variable_name | Value || Qcache_queries_in_cache | 8 |
| Qcache_inserts | 545875 |
| Qcache_hits | 83951 |
| Qcache_lowmem_prunes | 0 |
| Qcache_not_cached | 2343256 |
| Qcache_free_memory | 33508248 |
| Qcache_free_blocks | 1 |
| Qcache_total_blocks | 18 |8 rows in set (0.00 sec)如果需要计算命中率,需要知道服务器执行了多少 SELECT 语句:mysql> show status like 'Com_sel%';| Variable_name | Value || Com_select | 2889628 |1 row in set (0.01 sec)在本例中, MySQL 命中了 2,889,628 条查询中的 83,951 条,而且 INSERT 语句只有 545,875 条。因此,它们两者的和和280万的总查询相比有很大差距,因此,我们知道本例使用的缓冲类型是 2 。

而在类型是 1 的例子中, Qcache_hits 的数值会远远大于 Com_select 。



引自:http://www.24xuexi.com/w/2011-08-22/96580.html


GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:1 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐