Junior — Middle
Ce este mai rapid — ștergerea datelor cu comanda DELETE sau golirea tabelului cu TRUNCATE?
sobes.tech AI
Răspuns de la AI
Comanda TRUNCATE funcționează de obicei mai rapid decât DELETE atunci când trebuie să ștergi toate datele dintr-un tabel. Acest lucru se datorează faptului că TRUNCATE nu șterge rândurile unul câte unul, ci golește rapid întregul tabel, adesea resetând paginile de date și neînregistrând operațiuni individuale de ștergere în jurnalul de tranzacții.
Spre deosebire de DELETE, care șterge rândurile unul câte unul și poate declanșa trigger-e, TRUNCATE nu declanșează trigger-e și nu poate fi utilizat cu condiții WHERE — șterge toate datele deodată.
Exemplu:
-- Șterge toate rândurile (mai lent)
DELETE FROM users;
-- Curățare rapidă a tabelului
TRUNCATE TABLE users;
Prin urmare, dacă trebuie să golești rapid întregul tabel, este mai bine să folosești TRUNCATE.