Ce face STATEMENT_DIGEST()
MySQL grupează interogările asemănătoare într-un „digest”: înlocuiește valorile cu ?, normalizează spațiile și literele mari, apoi calculează o amprentă. STATEMENT_DIGEST() returnează această amprentă, iar STATEMENT_DIGEST_TEXT() textul normalizat.
Amprenta este aceeași care apare în coloana DIGEST din tabelele Performance Schema, deci o poți folosi pentru a găsi statisticile unei interogări. Instrucțiunea trebuie să fie SQL valid; altfel primești eroare de sintaxă.
Parametri
| Parametru | Descriere |
|---|---|
instructiune |
Textul unei instrucțiuni SQL. |
Ce returnează
Un text de 64 de caractere hexazecimale sau NULL.
Exemple
Exemplul 1: Aceeași amprentă pentru valori diferite
SELECT STATEMENT_DIGEST('SELECT * FROM produse WHERE id = 5') AS amprenta;
SELECT STATEMENT_DIGEST('SELECT * FROM produse WHERE id = 5') =
STATEMENT_DIGEST('select * from produse where id=42') AS aceeasi_interogare,
STATEMENT_DIGEST('SELECT * FROM produse WHERE id = 5') =
STATEMENT_DIGEST('SELECT * FROM produse WHERE pret = 5') AS alta_coloana;
Rezultat
+------------------------------------------------------------------+
| amprenta |
+------------------------------------------------------------------+
| ce609216f9cb80989c3e3af9c6cf0f57799b85f23695910a7222e6883b8d2708 |
+------------------------------------------------------------------+
+--------------------+--------------+
| aceeasi_interogare | alta_coloana |
+--------------------+--------------+
| 1 | 0 |
+--------------------+--------------+
Greșeli frecvente
- Folosești
STATEMENT_DIGEST()ca hash general pentru texte. Funcția analizează SQL; pentru texte oarecare foloseșteSHA2().
Comenzi înrudite
STATEMENT_DIGEST_TEXT(): Returnează forma normalizată a unei instrucțiuni SQL: valorile devin ?, iar numele primesc ghilimele inverse.SHA2(): Calculează suma de control SHA-2 (SHA-224, SHA-256, SHA-384 sau SHA-512) a unui text.FORMAT_PICO_TIME(): Transformă un timp în picosecunde într-un text ușor de citit: 3.50 ns, 250.00 ms, 3.15 min.