MySQL查询缓存
2014-02-05 17:20
246 查看
一.mysql的查询缓存
1.查询缓存的命中率计算:
Qcache_hits/(Qcache_hits + Com_select)
二.查询缓存进行调优
1.Query_cache_type,这个选项表示缓存是否被激活
取值为ON,OFF,DEMAND,DEMAND的意思是包含了SQL_CACHE选项的查询才能被缓存
2.Query_cache_size,分给给查询缓存的总内存,以字节为单位,他必须是1024的倍数
3.Query_cache_min_res_unit,分配缓存块的最小值
4.Query_cache_limit,限制了mysql存储的最大结果,默认是1m,如果在缓存的过程中超过了限制,Qcache_not_cached的值被增大
5.Query_cache_wlock_invalidate,是否缓存其他连接已经锁定了的表,默认是OFF.
三.减少碎片
仔细的选择Query_cache_min_res_unit的值,可以用以下公式获取参考值
(query_cache_size - Qcache_free_memory) / Qcache_queries_in_cache得到一个平均的大小
移除碎片:FLUSH QUERY CACHE,这个命令不会从缓存中移除查询,只有RESET QUERY CACHE才会这么做
四.如果临时禁用缓存
可以将query_cache_size设置为0,因为改变query_cache_type不会影响已经打开的连接
五.通用缓存优化
1.不要让query_cache_size过大,256m已经足够了
2.使用较小的表
3.成批写入操作
4.写入过多的数据库,适合关闭缓存
1.查询缓存的命中率计算:
Qcache_hits/(Qcache_hits + Com_select)
二.查询缓存进行调优
1.Query_cache_type,这个选项表示缓存是否被激活
取值为ON,OFF,DEMAND,DEMAND的意思是包含了SQL_CACHE选项的查询才能被缓存
2.Query_cache_size,分给给查询缓存的总内存,以字节为单位,他必须是1024的倍数
3.Query_cache_min_res_unit,分配缓存块的最小值
4.Query_cache_limit,限制了mysql存储的最大结果,默认是1m,如果在缓存的过程中超过了限制,Qcache_not_cached的值被增大
5.Query_cache_wlock_invalidate,是否缓存其他连接已经锁定了的表,默认是OFF.
三.减少碎片
仔细的选择Query_cache_min_res_unit的值,可以用以下公式获取参考值
(query_cache_size - Qcache_free_memory) / Qcache_queries_in_cache得到一个平均的大小
移除碎片:FLUSH QUERY CACHE,这个命令不会从缓存中移除查询,只有RESET QUERY CACHE才会这么做
四.如果临时禁用缓存
可以将query_cache_size设置为0,因为改变query_cache_type不会影响已经打开的连接
五.通用缓存优化
1.不要让query_cache_size过大,256m已经足够了
2.使用较小的表
3.成批写入操作
4.写入过多的数据库,适合关闭缓存
相关文章推荐
- MySQL并发调优和IO调优
- MySQL线程独享[转]
- mysql线程缓存和表缓存
- MySQL点滴
- MySQL优化常用
- MYSQL复习笔记3-用户和安全
- MYSQL复习笔记2-自带工具介绍
- Mysql复习
- Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
- windows7,单电脑不用虚拟机实现MySQL集群
- Windows从noinstall zip安装MySQL免安装版
- 如何重设mysql root密码 亲测可用!
- 自己留存:mysql full text 支持中文的一个设定
- MySQL Vs PostgreSQL 2
- mysql数据库 显示乱码
- 安装完 MySQL 后必须调整的 10 项配置
- 调用MYSQL存储过程实例
- mysql之6备份恢复
- mysql之主从复制
- MySQL字段自增自减的SQL语句