log_output背景
log_output参数是什么意思?表示慢日志输出到文件还是表中。
show global variables like 'log_output';
默认参数,log_output='FILE',表示慢日志输出到了文件中。
set global log_output='TABLE';
此时慢日志就输出到了mysql数据库的系统表中:select * from mysql.slow_log; 可以查看到。
set global log_output='FILE,TABLE';
此时慢日志可以同时记录到文件,和mysql.slow_log系统表中。
测试结论
log_output='FILE'/'FILE,TABLE'时的性能对比
模式 | tps | qps | 平响均值 | 平响95分位值 | 平响最大值 |
FILE | 310 | 3723580 | 103ms | 195ms | 690ms |
FILE,TABLE | 40 | 570820 | 792ms | 202ms | 300442ms |
TABLE |
结论:
FILE,TABLE模式比FILE模式性能退化显著,tps、qps、平响退化倍数在6.5-7.6。FILE,TABLE模式的平响最大值超高,sql执行卡死。