> IT面试 >

MYSQL预处理与绑定变量作用是什么?为什么要用?

  • 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)