MYSQL预处理与绑定变量作用是什么?为什么要用?
时间:2019-01-05 22:52 来源:未知 作者:IT
-
PREPARE语句:SET@sql1=‘xxx’; PREPARE stmt1 FROM @sql1;
-
变量用问号代替(绑定变量)。
-
作用:将SQL预先解析,在一个Session内再次使用此语句时不再重新解析。
-
EXECUTE语句:EXECUTE stmt1 USING @val1,@val2;
-
作用:将绑定变量赋予具体的值并且执行。
-
DEALLOCATE语句: DEALLOCATE PREPARE stmt1;
-
作用:销毁一个预解析SQL,释放资源。
-
为何使用绑定绑定变量?
-
因为绑定变量比直接传值更安全,尤其是拼接SQL非常容易被注入攻击。同时绑定变量也可以提高一点效率。
-
为何使用预处理,尤其在存储过程?
-
因为预处理可以避免SQL的反复解析,尤其是执行速度快的小SQL,解析时间甚至可能超过执行时间,采用预处理可以显著提高性能。
(责任编辑:IT)
|