一. 简介
审计日志最重要的作用,就是用于监控 SQL 执行性能,当一些 SQL 语句的 执行用时大于 long_query_time 设定值的时候,审计日志便将这些 SQL 语句记 录下来,方便用户针对这些执行效率低下的 SQL 语句进行分析,优化,改写, 从而提高 SQL 语句的执行效率。 审计日志记录的主要内容如下: thread_id: 线程号,同 processlist 中的 ID; taskid:每个 sql 任务编号; start_time:开始执行时间; end_time:结束执行时间; user_host:登录的用户和 IP,显示格式为: priv_user[user]@hostname[ip]; user:用户名; host_ip: 用户登录端 IP 地址; query_time:执行语句所用时间; rows:行数; db:执行语句所针对的数据库; table_list: 涉及表,格式:``.``[,...]; sql_text:记录执行用时大于 long_query_time 设定值的 SQL 语句; sql_type:sql 类型,如 DDL、DML、DQL、OTHERS; sql_command: sql 命令类型,如 SELECT、UPDATE,INSERT,LOAD 等; algorithms: 涉及的算子,比如 JOIN、WHERE、GROUP、HAVING 等; status:sql 执行状态,如 SUCCESS、FAILED、KILLED 等; conn_type:用户登录方式(CAPI、ODBC、JDBC、ADO.NET、STUDIO); 其中 sql_command 的取值范围为:INSERT、DELETE、UPDATE、LOAD、CREATE USER、CREATE DB、CREATE TABLE、CREATE VIEW、CREATE INDEX、CREATE PROCEDURE、 CREATE FUNCTION、RENAME USER、ALTER DB、ALTER TABLE、ALTER PROCEDURE、 ALTER FUNCTION、ALTER EVENT、DROP USER、DROP DB、DROP TABLE、DROP VIEW、 DROP INDEX、DROP PROCEDURE、DROP FUNCTION、DROP EVENT、TRUNCATE、GRANT、 REVOKE、SELECT 和 OTHERS。 algorithms 的取值范围为:START_WITH、CONNECT_BY、JOIN、WHERE、GROUP、 OLAP_GROUP、HAVING、OLAP_FUNC、DISTINCT、ORDER 和 LIMIT。若一个 SQL 涉 及多个算子,各算子之间用逗号分割。 目前,用户每次查看的审计日志为登录节点机器上的日志内容。