您的位置:首页 > 数据库 > MySQL

Mysql慢日志、缓存配置

2016-07-08 17:19 381 查看
mysql的慢日志查询对于sql的优化还是很有意义的,具体说下如何开启这个mysql慢查询日志

对于mysql的慢日志开启设置,在my.ini(或my.cnf)文件的[mysqld]下设置如下几个参数:

#开启慢查询 slow_query_log值为1或on表示开启,为0或off为关闭
slow_query_log=on 
#设置把慢日志写在那里,未配置的话系统会自动在mysql的data目录下生产一个慢日志文件,文件命名方式为计算机名-slow.log
slow_query_log_file=mysql-slow 
#设置sql执行时间多长为慢查询

long_query_time=2

#表示没有使用索引的sql查询也会记录下来
log-queries-not-using-indexes

对于mysql的缓存开启设置,在my.ini(或my.cnf)文件的[mysqld]下设置如下几个参数:
#开启缓存query_cache_type值为 0代表关闭查询缓存OFF,1代表开启ON(默认情况下应该是ON),2(DEMAND)代表当sql语句中有SQL_CACHE关键词时才缓存,如:select SQL_CACHE user_name from users where user_id = '100';
query_cache_type = 1
#设置查询缓存大小,也就是分配内存大小给查询缓存

query_cache_size = 600000

在mysql命令行输入:

show variables like '%quer%';  查看MYSQL服务器的慢查询状态是否开启

部分参数如下:

show variables like 'have_query_cache';  查看查询缓存是否可用

long_query_time    :  设定慢查询的阀值,超出次设定值的SQL即被记录到慢查询日志,缺省值为10s

slow_query_log      :  指定是否开启慢查询日志

log_slow_queries    :  指定是否开启慢查询日志(该参数要被slow_query_log取代,做兼容性保留)

slow_query_log_file :  指定慢日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log

log_queries_not_using_indexes::不使用索引的慢查询日志是否记录到索引

query_cache_limit :控制缓存查询结果的最大值

show status like '%Qcache%'; 查看缓存的状态

MySQL 提供了一系列的 Global Status 来记录 Query Cache 的当前状态,具体如下:

Qcache_free_blocks:目前还处于空闲状态的 Query Cache 中内存 Block 数目

Qcache_free_memory:目前还处于空闲状态的 Query Cache 内存总量

Qcache_hits:Query Cache 命中次数

Qcache_inserts:向 Query Cache 中插入新的 Query Cache 的次数,也就是没有命中的次数

Qcache_lowmem_prunes:当 Query Cache 内存容量不够,需要从中删除老的 Query Cache 以给新的 Cache 对象使用的次数

Qcache_not_cached:没有被 Cache 的 SQL 数,包括无法被 Cache 的 SQL 以及由于 query_cache_type 设置的不会被 Cache 的 SQL

Qcache_queries_in_cache:目前在 Query Cache 中的 SQL 数量

Qcache_total_blocks:Query Cache 中总的 Block 数量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: