JRR*_*JRR 10 mysql performance slow-log
mysql查询日志的格式是什么?特别是,对于像这样的行:
133 Query commit
133 Query rollback
Run Code Online (Sandbox Code Playgroud)
“133”代表什么?并且每一行都代表与数据库的往返通信(即它们不是批处理的)是真的吗?
Mic*_*bot 12
在MySQL General Query Log 中,字段如下:
yymmdd hh:mm:ss thread_id command_type query_body
Run Code Online (Sandbox Code Playgroud)
时间戳仅在每次更改时出现。
在您的示例中,“133”将是所连接客户端的线程 ID,如SHOW PROCESSLIST;.
每一行代表一个发出的查询,但不一定是从客户端到数据库的往返,因为在存储过程和存储函数中发出的查询也会被记录下来,并且一个 proc 或函数在运行时可以发出许多查询来响应来自客户端的单个查询。
此外,MySQL C-API 是某些语言的 MySQL 连接器的基础库,它支持多语句执行,这是另一种情况,其中多个查询不一定代表多个往返,因为多个查询可以发送到数据库作为“批处理”......但这只是调用应用程序使用此功能的一个因素。
通用日志也可以直接写入mysql.general_log表,这比基于文件的日志更容易解析和分析,但在使用该格式时,上述相同的一般观察适用。
该慢查询日志包含更多的信息,因此提供了更多的信息日志,了解服务器的运行,并且可以作为一个日志都通过配置MySQL来解释所有查询符合“慢”的标准查询。这是通过long_query_time在启用慢查询日志后设置为“0”来完成的。
小智 7
典型的通用日志格式如下所示:
Time Id Command Argument
110208 12:12:06 771 Query rollback
Run Code Online (Sandbox Code Playgroud)
多个查询可以出现在特定的时间戳,ID 表示 MySQL 连接线程 id 已经执行了一个查询“查询”类型的命令,它表明查询已经被执行,而 Argument 实际上是一个查询本身。