WEB开发网
开发学院数据库MySQL 实例分析:MySQL优化经验 阅读

实例分析:MySQL优化经验

 2008-02-19 11:06:09 来源:WEB开发网   
核心提示: 比例接近1:8000 健康状况非常好另外一个估计key_buffer_size的办法,把你网站数据库的每个表的索引所占空间大小加起来看看,实例分析:MySQL优化经验(2),以此服务器为例:比较大的几个表索引加起来大概125M,这个数字会随着表变大而变大,Qcache_free_block

比例接近1:8000 健康状况非常好

另外一个估计key_buffer_size的办法,把你网站数据库的每个表的索引所占空间大小加起来看看。以此服务器为例:比较大的几个表索引加起来大概125M,这个数字会随着表变大而变大。

从4.0.1开始,MySQL提供了查询缓冲机制。使用查询缓冲,MySQL将SELECT语句和查询结果存放在缓冲区中,今后对于同样的SELECT语句(区分大小写),将直接从缓冲区中读取结果。根据MySQL用户手册,使用查询缓冲最多可以达到238%的效率。

通过调节以下几个参数可以知道query_cache_size设置得是否合理

Qcache inserts

Qcache hits

Qcache lowmem prunes

Qcache free blocks

Qcache total blocks

Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况,同时Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,此时需要增加缓冲大小Qcache_hits的值不大,则表明你的查询重复率很低,这种情况下使用查询缓冲反而会影响效率,那么可以考虑不用查询缓冲。此外,在SELECT语句中加入SQL_NO_CACHE可以明确表示不使用查询缓冲。

Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多query_cache_type指定是否使用查询缓冲。

我设置:

query_cache_size = 32M

query_cache_type= 1

得到如下状态值:

Qcache queries in cache 12737 表明目前缓存的条数

Qcache inserts 20649006

Qcache hits 79060095  看来重复查询率还挺高的

Qcache lowmem prunes 617913 有这么多次出现缓存过低的情况

Qcache not cached 189896

Qcache free memory 18573912  目前剩余缓存空间

上一页  1 2 3 4 5 6  下一页

Tags:实例分析 MySQL 优化

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接