Estou executando o MySql5.7 com o registro de consulta lenta habilitado, e o registro inclui mais metadados do que o mencionado nos documentos; estas três linhas são impressas antes de cada consulta:
# Time: 2025-02-18T14:25:16.286041Z
# User@Host: root[root] @ localhost [] Id: 261083
# Query_time: 3.677193 Lock_time: 0.001193 Rows_sent: 1 Rows_examined: 4334365
Os documentos explicam apenas a terceira linha:
cada declaração escrita no log é precedida por uma linha que começa com um caractere # e tem estes campos (com todos os campos em uma única linha):
- Tempo de consulta
- Tempo de bloqueio
- Linhas_enviadas
- Linhas_examinadas
Das outras duas linhas, a maioria dos campos são óbvios; mas alguém sabe o que o campo Id representa? Ele é diferente para a maioria das entradas no meu log lento, mas em alguns casos há vários que têm o mesmo Id.
O Id representa o ID do thread da sessão/conexão MySQL que executou a consulta.
Como verificar?
Eu habilitei o log lento e executei
Em outra sessão eu executo SHOW PROCESSLIST (desculpe pela imagem)
A saída no arquivo de log
Repita os mesmos passos após desconectar/conectar novamente, você verá que o ID mudará.
Nota . Eu usei o MySQL 8+, mas será o mesmo no MySQL 5.7
Se eu tiver uma conexão aberta e executar, digamos, 5 consultas lentas diferentes sem fechar a conexão/sessão, o ID no log lento será o mesmo para essas 5 consultas.
Em palavras simples, se o id for idêntico para algumas consultas, significa que essas consultas foram executadas a partir da mesma conexão
O único(?) uso para o "id" em
PROCESSLIST
é paraKILL
um processo.Provavelmente não há utilidade para o id ao analisar o slowlog.