Optimizing MySQL performance_MySQL

php中文网
发布: 2016-05-31 08:46:15
原创
1213人浏览过

Optimizing MySQL performance

here is a little trick i learned recently on how to optimize mysql performance or rather how to think when trying to get the most out of mysql performance.

There are 2 variables or settings in MySQL you want to pay attention to:

query_cache_size which is the maximum amount of data that may be stored in the cache
登录后复制

and

query_cache_limit which is the maximum size of a single resultset in the cache.
登录后复制

In other words, the query_cache_size is the bucket you want to fill with the query_cache_limit.

Now if you were to run something likemysqltuner.pland gives you something like the following tuning hints:

[OK] Query cache efficiency: 31.3% (39K cached / 125K selects)[!!] Query cache prunes per day: 2300654Variables to adjust:query_cache_size (> 128M)
登录后复制

or if you were to do something like:

mysql -e "show status like 'qc%';"
登录后复制

You should get something like this:

+-------------------------+----------+| Variable_name | Value|+-------------------------+----------+| Qcache_free_blocks| 2105 || Qcache_free_memory| 28552504 || Qcache_hits | 124244 || Qcache_inserts| 40719|| Qcache_lowmem_prunes| 2300654|| Qcache_not_cached | 90 || Qcache_queries_in_cache | 9415 || Qcache_total_blocks | 21119|+-------------------------+----------+8 rows in set (0.00 sec)
登录后复制

In both cases you might want to play with or tweak both the query_cache_size and the query_cache_limit values. Just keep in mind that high values are discouraged and this is a per installation basis.

Recommended values could range from:

query_cache_size=128Mquery_cache_limit=1M
登录后复制

To

query_cache_size=2Gquery_cache_limit=1M
登录后复制

It all depends on your query cache efficiency. Now to me this is very different from theMySQL’s key cache hit ratiowhich you should probably keep in mind when optimzing mysql performance.

Now, lets explain a little what some of these values mean:

Qcache_free_memory

Is the memory free for new queries to be cached

Qcache_hits

摩笔天书
摩笔天书

摩笔天书AI绘本创作平台

摩笔天书 135
查看详情 摩笔天书

Query cache hits, shows how many queries have been served by the cache, keep an eye on these number, obviously the bigger the better.

Qcache_inserts

Tells you how many queries have been created and added to the cached pool, these value is not saved from during a reboot

Qcache_lowmem_prunes

From a purely optimization standpoint this may be the single most important number, if this number grows too fast or too large, it means you are running out of memory for the cache pool, as it is filling out too quickly, this indicates how many queries have been discarded from cache in order to cache new ones, increase the query cache size (query_cache_size) to avoid this. If you useVarnish(which why wouldn’t you?) this is very similar toN LRU nuked objects

Qcache_queries_in_cache

The queries actually in cache.

Ok, what else can I do to optimize MySQL Performance?

This is more like a homework but you’d be surprise what a great difference it makes to adjust thejoin_buffer_sizeandsort_buffer_sizevalues. Careful these values are per connection so setting them up too high can and will eat all of your RAM memory. Play with them at your own peril!

However if you are seeing that MySQL is creating too many temporary tables (and worse some of them in disks) then adjusting these values may help. Also using aramdriveto save the temporary tables may help optimizing and tuning MySQL.

Rating: 0.0/10(0 votes cast)

Rating:0(from 0 votes)

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号