mysql优化之query_cache_limit参数说明


Posted in MySQL onJuly 01, 2021

query_cache_limit

query_cache_limit指定单个查询能够使用的缓冲区大小,缺省为1M。

优化query_cache_size

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

  通过检查状态值Qcache_*,可以知道query_cache_size设置是否合理(上述状态值可以使用SHOW STATUS LIKE ‘Qcache%'获得)。如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况,如果Qcache_hits的值也非常大,则表明查询缓冲使用非常频繁,此时需要增加缓冲大小;如果Qcache_hits的值不大,则表明你的查询重复率很低,这种情况下使用查询缓冲反而会影响效率,那么可以考虑不用查询缓冲。此外,在SELECT语句中加入SQL_NO_CACHE可以明确表示不使用查询缓冲。

  与查询缓冲有关的参数还有query_cache_type、query_cache_limit、query_cache_min_res_unit。query_cache_type指定是否使用查询缓冲,可以设置为0、1、2,该变量是SESSION级的变量。query_cache_limit指定单个查询能够使用的缓冲区大小,缺省为1M。query_cache_min_res_unit是在4.1版本以后引入的,它指定分配缓冲区空间的最小单位,缺省为4K。检查状态值Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多,这就表明查询结果都比较小,此时需要减小 query_cache_min_res_unit。

因为我们的服务器内容96G所以如下设置

query_cache_size = 128M
query_cache_limit = 8M

比较完整的my.ini文件,大家可以根据自己的服务器适当调整,以防止mysql无法运行,这个是针对mysql5.6版本的。

[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8
#设置客户端的字符编码
[mysqld]
# generic configuration options
port = 3306
socket = /tmp/mysql.sock
basedir="E:/database/mysql/"
datadir="E:/database/mysql/data/"
tmpdir = "E:/database/mysql/tmp/"
#*** char set ***
character-set-server = utf8
#设置服务器端的字符编码

#下面三个参数默认12500,1400,2000
performance_schema_max_table_instances = 20000
table_definition_cache = 2000
table_open_cache = 4096

#*** network ***
back_log = 1024
#skip-networking #默认没有开启
max_connections = 10000
#max_connect_errors = 3000
table_open_cache = 4096
#external-locking #默认没有开启
max_allowed_packet = 256M
max_heap_table_size = 128M
secure_file_priv=''
explicit_defaults_for_timestamp=true
concurrent_insert=2

#*** timeout ***
interactive_timeout=1000
wait_timeout=1000

# *** global cache ***
read_buffer_size = 64M
read_rnd_buffer_size = 64M
sort_buffer_size = 64M
join_buffer_size = 1024M

# *** thread ***
thread_cache_size = 64
# thread_concurrency = 8
thread_stack = 512K

# *** query cache ***
query_cache_size = 128M
query_cache_limit = 8M

# *** index ***
ft_min_word_len = 8

#memlock #默认没有开启
default-storage-engine=MYISAM
innodb=OFF
default-tmp-storage-engine=MYISAM
transaction_isolation = REPEATABLE-READ

# *** tmp table ***
tmp_table_size = 1024M

# *** bin log ***
#log-bin=mysql-bin
binlog_cache_size = 4M
binlog_format=mixed
#log_slave_updates #默认没有开启
#log #默认没有开启,此处是查询日志,开启会影响服务器性能
log_warnings #开启警告日志

# *** slow query log ***
slow_query_log
long_query_time = 10
# *** Replication related settings
#server-id = 1
#server-id = 2
#master-host = <hostname>
#master-user = <username>
#master-password = <password>
#master-port = <port>
#read_only
#*** MyISAM Specific options
#myisam_recover
key_buffer_size = 2048M
bulk_insert_buffer_size = 128M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover_options=force,backup

# *** INNODB Specific options ***
#skip-innodb #默认没有开启
loose-innodb-trx=0
loose-innodb-locks=0
loose-innodb-lock-waits=0
loose-innodb-cmp=0
loose-innodb-cmp-per-index=0
loose-innodb-cmp-per-index-reset=0
loose-innodb-cmp-reset=0
loose-innodb-cmpmem=0
loose-innodb-cmpmem-reset=0
loose-innodb-buffer-page=0
loose-innodb-buffer-page-lru=0
loose-innodb-buffer-pool-stats=0
loose-innodb-metrics=0
loose-innodb-ft-default-stopword=0
#loose-innodb-ft-inserted=0
loose-innodb-ft-deleted=0
loose-innodb-ft-being-deleted=0
loose-innodb-ft-config=0
loose-innodb-ft-index-cache=0
loose-innodb-ft-index-table=0
loose-innodb-sys-tables=0
loose-innodb-sys-tablestats=0
loose-innodb-sys-indexes=0
loose-innodb-sys-columns=0
loose-innodb-sys-fields=0
loose-innodb-sys-foreign=0
loose-innodb-sys-foreign-cols=0

[mysqldump]
quick
max_allowed_packet = 256M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 2048M
sort_buffer_size = 2048M
read_buffer = 32M
write_buffer = 32M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
open-files-limit = 10240
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

如果想优化mysql可以结合MySQL的Query Cache详解的文章。

MySQL 相关文章推荐
MySQL命令行操作时的编码问题详解
Apr 14 MySQL
MySQL时间盲注的五种延时方法实现
May 18 MySQL
新手入门Mysql--sql执行过程
Jun 20 MySQL
MySQL系列之四 SQL语法
Jul 02 MySQL
MySQL 那些常见的错误设计规范,你都知道吗
Jul 16 MySQL
mysql脏页是什么
Jul 26 MySQL
MySQL的InnoDB存储引擎的数据页结构详解
Mar 03 MySQL
一条慢SQL语句引发的改造之路
Mar 16 MySQL
单机多实例部署 MySQL8.0.20
May 15 MySQL
MySQL优化之慢日志查询
Jun 10 MySQL
MySQL安装失败的原因及解决步骤
Jun 14 MySQL
Mysql的Table doesn't exist问题及解决
Dec 24 MySQL
MySQL中存储时间的最佳实践指南
Jul 01 #MySQL
MySQL连表查询分组去重的实现示例
Jul 01 #MySQL
python中的mysql数据库LIKE操作符详解
Jul 01 #MySQL
解决Mysql的left join无效及使用的注意事项说明
mysql left join快速转inner join的过程
MySQL 十大常用字符串函数详解
Mysql中调试存储过程最简单的方法
Jun 30 #MySQL
You might like
如何将一个表单同时提交到两个地方处理
2006/10/09 PHP
PHP页面跳转实现延时跳转的方法
2016/12/10 PHP
PHP基于面向对象封装的分页类示例
2019/03/15 PHP
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
jQuery自定义动画函数实例详解(附demo源码)
2015/12/10 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
jQury Ajax使用Token验证身份实例代码
2017/09/22 Javascript
webpack下实现动态引入文件方法
2018/02/22 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
javascript合并两个数组最简单的实现方法
2019/09/14 Javascript
微信小程序基于高德地图查找位置并显示文字
2019/10/30 Javascript
vite2.0+vue3移动端项目实战详解
2021/03/03 Vue.js
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
[03:11]DOTA2上海特锦赛小组赛第一日recap精彩回顾
2016/02/28 DOTA
python sys模块sys.path使用方法示例
2013/12/04 Python
Python的requests网络编程包使用教程
2016/07/11 Python
浅谈五大Python Web框架
2017/03/20 Python
微信跳一跳辅助python代码实现
2018/01/05 Python
python实现指定文件夹下的指定文件移动到指定位置
2018/09/17 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
python3读取autocad图形文件.py实例
2020/06/05 Python
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
卡骆驰英国官网:Crocs英国
2019/08/22 全球购物
元旦晚会邀请函
2014/01/27 职场文书
实验教师岗位职责
2014/02/13 职场文书
知识竞赛活动方案
2014/02/18 职场文书
中式结婚主持词
2014/03/14 职场文书
离婚起诉书范本
2015/05/18 职场文书
JavaScript 防篡改对象的用法示例
2021/04/24 Javascript
Python编解码问题及文本文件处理方法详解
2021/06/20 Python
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python