Sobes.tech
Junior — Middle

Čo je rýchlejšie — odstránenie údajov pomocou príkazu DELETE alebo vyprázdnenie tabuľky pomocou TRUNCATE?

sobes.tech AI

Odpoveď od AI

Príkaz TRUNCATE zvyčajne funguje rýchlejšie ako DELETE, keď je potrebné odstrániť všetky údaje z tabuľky. Je to spôsobené tým, že TRUNCATE neodstraňuje riadky po jednom, ale rýchlo vyprázdni celú tabuľku, často resetovaním stránok s údajmi a nezaznamenávaním jednotlivých operácií odstraňovania v transakčnom denníku.

Na rozdiel od DELETE, ktorý odstraňuje riadky po jednom a môže aktivovať spúšťače, TRUNCATE nespúšťa spúšťače a nemôže byť použitý s podmienkami WHERE — odstraňuje všetky údaje naraz.

Príklad:

-- Odstránenie všetkých riadkov (pomalšie)
DELETE FROM users;

-- Rýchle vyprázdnenie tabuľky
TRUNCATE TABLE users;

Ak chcete rýchlo vyprázdniť celú tabuľku, je lepšie použiť TRUNCATE.