数据库审计功能用于监视并记录对数据库服务器的各类操作行为,并记入审计日志或数据库中以便日后进行跟踪、查询、分析,以实现对用户操作的监控和审计。MySQL本身提供详细的sql执行记录–general log,但是开启记录日志的话,只要执行了sql就会记录,无论是否有错误,这就会导致记录大量的无用信息,如果sql并发量很大时,log的记录会对io造成一定的印象,降低数据库效率。
下面我们来简单测试一下,审计日志对数据库性能的影响有多少。
测试环境
虚拟机:VMware Workstation-15
数据库版本:5.7.27-enterprise-commercial-advanced
操作系统版本:centos 7.3
磁盘:SSD
测试工具:sysbench
测试时间:5分钟
默认情况下,MySQL是不开启General log的,我们先使用sysbench对未启用审计日志的数据库进行性能测试。
结果如下:
接下来我们需要开启General log。
查看General Log开启情况:
执行SQL命令show variables like '%general_log%'