Mysql慢日志、缓存配置

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 数量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux中MySQL 8的配置文件是my.cnf,其主要控制数据库的各种参数缓存设置。 在my.cnf中,可以找到一些重要的数据库缓存参数,包括: 1. key_buffer_size:该参数控制数据库索引缓存的大小。索引缓存用于存储表索引的数据,提高查询速度。可以根据系统的物理内存大小来调整该参数的值。 2. innodb_buffer_pool_size:该参数控制InnoDB存储引擎的缓冲池大小。缓冲池用于存储InnoDB表的数据和索引,提供高性能的数据读写。可以根据系统的物理内存大小和使用的InnoDB表的数量来调整该参数的值。 3. query_cache_size:该参数控制查询缓存的大小。查询缓存用于存储查询结果,当再次执行相同的查询时可以直接从缓存中获取结果,提高查询速度。然而,随着数据库的更新操作增多,查询缓存的效果可能会下降,因此在MySQL 8中,该功能已被默认关闭。 4. tmp_table_size和max_heap_table_size:这两个参数分别控制内存临时表的最大大小和堆表的最大大小。当查询需要创建临时表时,MySQL将使用这些参数来确定应该使用内存还是磁盘临时表。可以根据系统的物理内存大小和查询需要创建的临时表的大小来调整这两个参数的值。 除了上述参数外,还有其他一些关键的缓存设置,如innodb_log_buffer_size用于控制InnoDB的日志缓存大小,等等。 通过适当调整MySQL 8的配置文件中的这些缓存参数,可以提高数据库的性能和响应速度。但需要根据具体的系统配置和需求进行调整,充分利用系统资源,确保MySQL 8在适合的缓存设置下运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值