Kada se pripremi i izvrsi statement, na primer:
PREPARE test FROM 'SELECT email FROM users WHERE id=?';
SET @u = 123;
EXECUTE test USING @u;
DEALLOCATE PREPARE test;
Racunam da ako se ne izvrši DEALLOCATE onda isti statement može da se koristi vise puta do kraja izvršenja scripta.
Da li se statement automatski dealocira (brise iz memorije) kada se zavrsi script, kao sto je slucaj sa connect, da se po zavrsetku scripta automatski radi disconnect (osim ako nije permanent connect)?
O koji brzinama govorimo, da li je ovakav statement značano sporiji od običnog "SELECT email FROM users WHERE id=123" ili je čak možda i brži?
Ako želim isti statement za različite varijable da koristim nekoliko puta za redom, da li značajno oduzima vreme sama akcija PREPARE ... SET... DEALLOCATE? Hoću da kažem da li je mnogo sporije ovako:
HTML kôd:
PREPARE test FROM 'SELECT email FROM users WHERE id=?';
SET @u = 123;
EXECUTE test USING @u;
DEALLOCATE PREPARE test;
// pa se onda radi nesto drugo pa se pozove:
PREPARE test FROM 'SELECT email FROM users WHERE id=?';
SET @u = 24;
EXECUTE test USING @u;
DEALLOCATE PREPARE test;
// pa se onda radi nesto drugo pa se pozove:
PREPARE test FROM 'SELECT email FROM users WHERE id=?';
SET @u = 931;
EXECUTE test USING @u;
DEALLOCATE PREPARE test;
od ovoga
HTML kôd:
PREPARE test FROM 'SELECT email FROM users WHERE id=?';
SET @u = 123;
EXECUTE test USING @u;
// pa se onda radi nesto drugo pa se pozove:
SET @u = 24;
EXECUTE test USING @u;
// pa se onda radi nesto drugo pa se pozove:
SET @u = 931;
EXECUTE test USING @u;
DEALLOCATE PREPARE test;