Ce face STATEMENT_DIGEST_TEXT()
STATEMENT_DIGEST_TEXT() arată cum vede MySQL o interogare când o grupează cu altele asemănătoare: valorile sunt înlocuite cu ?, cuvintele cheie sunt scrise cu majuscule, iar numele de tabele și coloane sunt puse între `.
Este același text care apare în coloana DIGEST_TEXT din performance_schema.events_statements_summary_by_digest. Lungimea maximă depinde de variabila max_digest_length.
Parametri
| Parametru | Descriere |
|---|---|
instructiune |
Textul unei instrucțiuni SQL. |
Ce returnează
Textul normalizat sau NULL.
Exemple
Exemplul 1: Interogări normalizate
La INSERT, lista de rânduri este scurtată la (...) /* , ... */, ca un INSERT cu 2 rânduri și unul cu 100 de rânduri să aibă aceeași formă.
SELECT STATEMENT_DIGEST_TEXT('select nume, pret from produse where id = 5 and stoc > 0') AS normalizat;
SELECT STATEMENT_DIGEST_TEXT("INSERT INTO clienti VALUES (1, 'Ana'), (2, 'Dan')") AS insert_normalizat;
Rezultat
+---------------------------------------------------------------------+
| normalizat |
+---------------------------------------------------------------------+
| SELECT `nume` , `pret` FROM `produse` WHERE `id` = ? AND `stoc` > ? |
+---------------------------------------------------------------------+
+------------------------------------------------+
| insert_normalizat |
+------------------------------------------------+
| INSERT INTO `clienti` VALUES (...) /* , ... */ |
+------------------------------------------------+
Greșeli frecvente
- Trimiți un text care nu este SQL valid. Funcția îl analizează cu parserul MySQL și dă eroare de sintaxă.
Comenzi înrudite
STATEMENT_DIGEST(): Returnează amprenta (hash SHA-256) unei instrucțiuni SQL, aceeași pentru interogări care diferă doar prin valori.FORMAT_PICO_TIME(): Transformă un timp în picosecunde într-un text ușor de citit: 3.50 ns, 250.00 ms, 3.15 min.