output调控着慢查询和一般查询日志的输出方向

 

general log&slow query log

对于MySQL的相似查询日志和慢查询日志,开启比较轻易,当中公用的三个参数是log_output,log_output调整着慢查询和一般查询日志的出口方向
能够是表(mysql.general_log,mysql.slow_log)或然文件(有参数general_log_file和slow_query_log_file配置决定)
要么同一时间输出到表和文件(想不知晓,曾几何时须要同不常间输出到表和文书)。
不过两个受log_output参数影响,输出的靶子总是同样的,也正是要么都写入表,可能要么都写入文件,不会贰个出口到表,七个出口到文件。

--slow log 相关参数
select * 
from performance_schema.global_variables 
where variable_name in
('slow_query_log','log_output','slow_query_log_file','long_query_time')

--general log 相关参数
select * 
from performance_schema.global_variables 
where variable_name in
('general_log','log_output','general_log_file')

对于上述三种日志,系统默许不会清理,因而在展开了相关日志之后,要求人工清理。

怎么理清历史general log&slow query log

1,当输出指标为表的时候

  不可能直接删除,假诺间接删除的话,会冒出“E陆风X8ROCRUISER 1556 (HY000): You can’t
use locks with log tables.”的荒唐提示

  图片 1

以general
log为例,须求先关闭general_log,然后重命名general_log这个表,
图片 2 

在对重命名之后的表施行删除,最后在重命名回来,最终开启general_log(如果有不能缺少的话)

SET GLOBAL general_log = 'OFF';
RENAME TABLE general_log TO general_log_temp;
DELETE FROM general_log_temp WHERE event_time < DATE(NOW());
RENAME TABLE general_log_temp TO general_log;
SET GLOBAL general_log = 'ON';


--slow log 同理
SET GLOBAL slow_query_log = 'OFF';
RENAME TABLE slow_log TO slow_log_temp;
DELETE FROM slow_log_temp WHERE start_time < DATE(NOW());
RENAME TABLE slow_log_temp TO slow_log;
SET GLOBAL slow_query_log = 'ON';

output调控着慢查询和一般查询日志的输出方向。  假设对重命名之后的表(general_log或者是slow_output调控着慢查询和一般查询日志的输出方向。log)未有重新重命名回来,会生出怎样?
  插足如下截图,若无找到相应的表(general_log或者是slow_log),在输出目的为表的事态下,会提示不能够找到相应的表,将无法拉开对应的日志

图片 3

2,当输出指标为文件的时候

  当输出目的为文件的时候,在linux下,直接动用rm命名删除就能够,假使在展开了相似查询日志恐怕是慢查询日志,删除相应的日记文件,并不影响数据库的正规使用
  网络有说须求结束MySQL服务然后重命名文件然后在开立异的文件啥的,在Linux下并非必须的,不知晓在windows下是怎么样动静,没兴趣试。
  当然也不是说就提出始终这种暴力的格局清理日志文件,
output调控着慢查询和一般查询日志的输出方向。  在Linux下,删除了暗许的日记文件(也许重命名了原日志文件),要想再也转移日志文件
  1,能够行使mysqladmin flush-logs
  2,是SQL命令flush slow logs;flush general logs;
  3,重启MySQL服务
output调控着慢查询和一般查询日志的输出方向。output调控着慢查询和一般查询日志的输出方向。  均可另行生成对应的日志文件。

图片 4

小心:当对应的公文是存在的时候,上述命名实施之后是从未有过影响的(也不会清理对应的日记文件)

 


 

以下偏离主题

当输出指标为表的时候的剖判

  不管是general_log或者是slow_log,对应的SQL语句都以二进制格式的,须求选择convert(sql_text
using UTF8)做一个转移,才变得具备可读性。

图片 5

 

当输出目的为表的时候对品质的震慑

  据个人测量试验,在央浼量比很小的数据库上,开启general_log或者是slow_log,对质量影响并从未那些料定。
  理论家们一方面重申说MySQL的管理并发上多英雄,一方面又说开启general_log对品质影响相当的大,会不会自相争论呢?
  关于general_log,在zabbix监察和控制下,测量试验情况TPS可是百的场馆下(每秒写入general
log不当先100条数据),开启general_log之后并CPU负载差非常少从未成形,CPU高点是在做其他压力测量检验。
  尤其是slow_log这种写入不是太频仍的日记,直接写入到表中,对质量的熏陶有限,比后边再去花时间分析文件……  
  当然不排除TPS在上千要么上万竟是越来越高之后,开启general_log会生出异常的大的影响,当然没事也不会闲的蛋疼去开general_log。

  图片 6

 

 

备注:

平昔rm掉general log&slow query log
并从未实际删除文件,磁盘空间也不会放出。mysql进度会两次三番享有,况且不断往里写多少。lsof看一下就理解了

压力大的气象下 大概30-% 质量损耗

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图